common.js
上传用户:kimgenplus
上传日期:2016-06-05
资源大小:20877k
文件大小:5k
源码类别:

OA系统

开发平台:

Java

  1. /*
  2. Copyright (c) 2004-2006, The Dojo Foundation
  3. All Rights Reserved.
  4. Licensed under the Academic Free License version 2.1 or above OR the
  5. modified BSD license. For more information on Dojo licensing, see:
  6. http://dojotoolkit.org/community/licensing.shtml
  7. */
  8. dojo.provide("dojo.html.common");
  9. dojo.require("dojo.lang.common");
  10. dojo.require("dojo.dom");
  11. dojo.lang.mixin(dojo.html, dojo.dom);
  12. dojo.html.body = function () {
  13. dojo.deprecated("dojo.html.body() moved to dojo.body()", "0.5");
  14. return dojo.body();
  15. };
  16. dojo.html.getEventTarget = function (evt) {
  17. if (!evt) {
  18. evt = dojo.global().event || {};
  19. }
  20. var t = (evt.srcElement ? evt.srcElement : (evt.target ? evt.target : null));
  21. while ((t) && (t.nodeType != 1)) {
  22. t = t.parentNode;
  23. }
  24. return t;
  25. };
  26. dojo.html.getViewport = function () {
  27. var _window = dojo.global();
  28. var _document = dojo.doc();
  29. var w = 0;
  30. var h = 0;
  31. if (dojo.render.html.mozilla) {
  32. w = _document.documentElement.clientWidth;
  33. h = _window.innerHeight;
  34. } else {
  35. if (!dojo.render.html.opera && _window.innerWidth) {
  36. w = _window.innerWidth;
  37. h = _window.innerHeight;
  38. } else {
  39. if (!dojo.render.html.opera && dojo.exists(_document, "documentElement.clientWidth")) {
  40. var w2 = _document.documentElement.clientWidth;
  41. if (!w || w2 && w2 < w) {
  42. w = w2;
  43. }
  44. h = _document.documentElement.clientHeight;
  45. } else {
  46. if (dojo.body().clientWidth) {
  47. w = dojo.body().clientWidth;
  48. h = dojo.body().clientHeight;
  49. }
  50. }
  51. }
  52. }
  53. return {width:w, height:h};
  54. };
  55. dojo.html.getScroll = function () {
  56. var _window = dojo.global();
  57. var _document = dojo.doc();
  58. var top = _window.pageYOffset || _document.documentElement.scrollTop || dojo.body().scrollTop || 0;
  59. var left = _window.pageXOffset || _document.documentElement.scrollLeft || dojo.body().scrollLeft || 0;
  60. return {top:top, left:left, offset:{x:left, y:top}};
  61. };
  62. dojo.html.getParentByType = function (node, type) {
  63. var _document = dojo.doc();
  64. var parent = dojo.byId(node);
  65. type = type.toLowerCase();
  66. while ((parent) && (parent.nodeName.toLowerCase() != type)) {
  67. if (parent == (_document["body"] || _document["documentElement"])) {
  68. return null;
  69. }
  70. parent = parent.parentNode;
  71. }
  72. return parent;
  73. };
  74. dojo.html.getAttribute = function (node, attr) {
  75. node = dojo.byId(node);
  76. if ((!node) || (!node.getAttribute)) {
  77. return null;
  78. }
  79. var ta = typeof attr == "string" ? attr : new String(attr);
  80. var v = node.getAttribute(ta.toUpperCase());
  81. if ((v) && (typeof v == "string") && (v != "")) {
  82. return v;
  83. }
  84. if (v && v.value) {
  85. return v.value;
  86. }
  87. if ((node.getAttributeNode) && (node.getAttributeNode(ta))) {
  88. return (node.getAttributeNode(ta)).value;
  89. } else {
  90. if (node.getAttribute(ta)) {
  91. return node.getAttribute(ta);
  92. } else {
  93. if (node.getAttribute(ta.toLowerCase())) {
  94. return node.getAttribute(ta.toLowerCase());
  95. }
  96. }
  97. }
  98. return null;
  99. };
  100. dojo.html.hasAttribute = function (node, attr) {
  101. return dojo.html.getAttribute(dojo.byId(node), attr) ? true : false;
  102. };
  103. dojo.html.getCursorPosition = function (e) {
  104. e = e || dojo.global().event;
  105. var cursor = {x:0, y:0};
  106. if (e.pageX || e.pageY) {
  107. cursor.x = e.pageX;
  108. cursor.y = e.pageY;
  109. } else {
  110. var de = dojo.doc().documentElement;
  111. var db = dojo.body();
  112. cursor.x = e.clientX + ((de || db)["scrollLeft"]) - ((de || db)["clientLeft"]);
  113. cursor.y = e.clientY + ((de || db)["scrollTop"]) - ((de || db)["clientTop"]);
  114. }
  115. return cursor;
  116. };
  117. dojo.html.isTag = function (node) {
  118. node = dojo.byId(node);
  119. if (node && node.tagName) {
  120. for (var i = 1; i < arguments.length; i++) {
  121. if (node.tagName.toLowerCase() == String(arguments[i]).toLowerCase()) {
  122. return String(arguments[i]).toLowerCase();
  123. }
  124. }
  125. }
  126. return "";
  127. };
  128. if (dojo.render.html.ie && !dojo.render.html.ie70) {
  129. if (window.location.href.substr(0, 6).toLowerCase() != "https:") {
  130. (function () {
  131. var xscript = dojo.doc().createElement("script");
  132. xscript.src = "javascript:'dojo.html.createExternalElement=function(doc, tag){ return doc.createElement(tag); }'";
  133. dojo.doc().getElementsByTagName("head")[0].appendChild(xscript);
  134. })();
  135. }
  136. } else {
  137. dojo.html.createExternalElement = function (doc, tag) {
  138. return doc.createElement(tag);
  139. };
  140. }
  141. dojo.html._callDeprecated = function (inFunc, replFunc, args, argName, retValue) {
  142. dojo.deprecated("dojo.html." + inFunc, "replaced by dojo.html." + replFunc + "(" + (argName ? "node, {" + argName + ": " + argName + "}" : "") + ")" + (retValue ? "." + retValue : ""), "0.5");
  143. var newArgs = [];
  144. if (argName) {
  145. var argsIn = {};
  146. argsIn[argName] = args[1];
  147. newArgs.push(args[0]);
  148. newArgs.push(argsIn);
  149. } else {
  150. newArgs = args;
  151. }
  152. var ret = dojo.html[replFunc].apply(dojo.html, args);
  153. if (retValue) {
  154. return ret[retValue];
  155. } else {
  156. return ret;
  157. }
  158. };
  159. dojo.html.getViewportWidth = function () {
  160. return dojo.html._callDeprecated("getViewportWidth", "getViewport", arguments, null, "width");
  161. };
  162. dojo.html.getViewportHeight = function () {
  163. return dojo.html._callDeprecated("getViewportHeight", "getViewport", arguments, null, "height");
  164. };
  165. dojo.html.getViewportSize = function () {
  166. return dojo.html._callDeprecated("getViewportSize", "getViewport", arguments);
  167. };
  168. dojo.html.getScrollTop = function () {
  169. return dojo.html._callDeprecated("getScrollTop", "getScroll", arguments, null, "top");
  170. };
  171. dojo.html.getScrollLeft = function () {
  172. return dojo.html._callDeprecated("getScrollLeft", "getScroll", arguments, null, "left");
  173. };
  174. dojo.html.getScrollOffset = function () {
  175. return dojo.html._callDeprecated("getScrollOffset", "getScroll", arguments, null, "offset");
  176. };