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

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. if (typeof window == "undefined") {
  9. dojo.raise("attempt to use adobe svg hostenv when no window object");
  10. }
  11. dojo.debug = function () {
  12. if (!djConfig.isDebug) {
  13. return;
  14. }
  15. var args = arguments;
  16. var isJUM = dj_global["jum"];
  17. var s = isJUM ? "" : "DEBUG: ";
  18. for (var i = 0; i < args.length; ++i) {
  19. s += args[i];
  20. }
  21. if (isJUM) {
  22. jum.debug(s);
  23. } else {
  24. dojo.hostenv.println(s);
  25. }
  26. };
  27. dojo.render.name = navigator.appName;
  28. dojo.render.ver = parseFloat(navigator.appVersion, 10);
  29. switch (navigator.platform) {
  30.   case "MacOS":
  31. dojo.render.os.osx = true;
  32. break;
  33.   case "Linux":
  34. dojo.render.os.linux = true;
  35. break;
  36.   case "Windows":
  37. dojo.render.os.win = true;
  38. break;
  39.   default:
  40. dojo.render.os.linux = true;
  41. break;
  42. }
  43. dojo.render.svg.capable = true;
  44. dojo.render.svg.support.builtin = true;
  45. dojo.render.svg.moz = ((navigator.userAgent.indexOf("Gecko") >= 0) && (!((navigator.appVersion.indexOf("Konqueror") >= 0) || (navigator.appVersion.indexOf("Safari") >= 0))));
  46. dojo.render.svg.adobe = (window.parseXML != null);
  47. dojo.hostenv.startPackage("dojo.hostenv");
  48. dojo.hostenv.println = function (s) {
  49. try {
  50. var ti = document.createElement("text");
  51. ti.setAttribute("x", "50");
  52. ti.setAttribute("y", (25 + 15 * document.getElementsByTagName("text").length));
  53. ti.appendChild(document.createTextNode(s));
  54. document.documentElement.appendChild(ti);
  55. }
  56. catch (e) {
  57. }
  58. };
  59. dojo.hostenv.name_ = "svg";
  60. dojo.hostenv.setModulePrefix = function (module, prefix) {
  61. };
  62. dojo.hostenv.getModulePrefix = function (module) {
  63. };
  64. dojo.hostenv.getTextStack = [];
  65. dojo.hostenv.loadUriStack = [];
  66. dojo.hostenv.loadedUris = [];
  67. dojo.hostenv.modules_ = {};
  68. dojo.hostenv.modulesLoadedFired = false;
  69. dojo.hostenv.modulesLoadedListeners = [];
  70. dojo.hostenv.getText = function (uri, cb, data) {
  71. if (!cb) {
  72. var cb = function (result) {
  73. window.alert(result);
  74. };
  75. }
  76. if (!data) {
  77. window.getUrl(uri, cb);
  78. } else {
  79. window.postUrl(uri, data, cb);
  80. }
  81. };
  82. dojo.hostenv.getLibaryScriptUri = function () {
  83. };
  84. dojo.hostenv.loadUri = function (uri) {
  85. };
  86. dojo.hostenv.loadUriAndCheck = function (uri, module) {
  87. };
  88. dojo.hostenv.loadModule = function (moduleName) {
  89. var a = moduleName.split(".");
  90. var currentObj = window;
  91. var s = [];
  92. for (var i = 0; i < a.length; i++) {
  93. if (a[i] == "*") {
  94. continue;
  95. }
  96. s.push(a[i]);
  97. if (!currentObj[a[i]]) {
  98. dojo.raise("dojo.require('" + moduleName + "'): module does not exist.");
  99. } else {
  100. currentObj = currentObj[a[i]];
  101. }
  102. }
  103. return;
  104. };
  105. dojo.hostenv.startPackage = function (moduleName) {
  106. var a = moduleName.split(".");
  107. var currentObj = window;
  108. var s = [];
  109. for (var i = 0; i < a.length; i++) {
  110. if (a[i] == "*") {
  111. continue;
  112. }
  113. s.push(a[i]);
  114. if (!currentObj[a[i]]) {
  115. currentObj[a[i]] = {};
  116. }
  117. currentObj = currentObj[a[i]];
  118. }
  119. return;
  120. };
  121. if (window.parseXML) {
  122. window.XMLSerialzer = function () {
  123. function nodeToString(n, a) {
  124. function fixText(s) {
  125. return String(s).replace(/&/g, "&amp;").replace(/>/g, "&gt;").replace(/</g, "&lt;");
  126. }
  127. function fixAttribute(s) {
  128. return fixText(s).replace(/"/g, "&quot;");
  129. }
  130. switch (n.nodeType) {
  131.   case 1:
  132. var name = n.nodeName;
  133. a.push("<" + name);
  134. for (var i = 0; i < n.attributes.length; i++) {
  135. if (n.attributes.item(i).specified) {
  136. a.push(" " + n.attributes.item(i).nodeName.toLowerCase() + "="" + fixAttribute(n.attributes.item(i).nodeValue) + """);
  137. }
  138. }
  139. if (n.canHaveChildren || n.hasChildNodes()) {
  140. a.push(">");
  141. for (var i = 0; i < n.childNodes.length; i++) {
  142. nodeToString(n.childNodes.item(i), a);
  143. }
  144. a.push("</" + name + ">n");
  145. } else {
  146. a.push(" />n");
  147. }
  148. break;
  149.   case 3:
  150. a.push(fixText(n.nodeValue));
  151. break;
  152.   case 4:
  153. a.push("<![CDA" + "TA[n" + n.nodeValue + "n]" + "]>");
  154. break;
  155.   case 7:
  156. a.push(n.nodeValue);
  157. if (/(^<?xml)|(^<!DOCTYPE)/.test(n.nodeValue)) {
  158. a.push("n");
  159. }
  160. break;
  161.   case 8:
  162. a.push("<!-- " + n.nodeValue + " -->n");
  163. break;
  164.   case 9:
  165.   case 11:
  166. for (var i = 0; i < n.childNodes.length; i++) {
  167. nodeToString(n.childNodes.item(i), a);
  168. }
  169. break;
  170.   default:
  171. a.push("<!--nNot Supported:nn" + "nodeType: " + n.nodeType + "nnodeName: " + n.nodeName + "n-->");
  172. }
  173. }
  174. this.serializeToString = function (node) {
  175. var a = [];
  176. nodeToString(node, a);
  177. return a.join("");
  178. };
  179. };
  180. window.DOMParser = function () {
  181. this.parseFromString = function (s) {
  182. return parseXML(s, window.document);
  183. };
  184. };
  185. window.XMLHttpRequest = function () {
  186. var uri = null;
  187. var method = "POST";
  188. var isAsync = true;
  189. var cb = function (d) {
  190. this.responseText = d.content;
  191. try {
  192. this.responseXML = parseXML(this.responseText, window.document);
  193. }
  194. catch (e) {
  195. }
  196. this.status = "200";
  197. this.statusText = "OK";
  198. if (!d.success) {
  199. this.status = "500";
  200. this.statusText = "Internal Server Error";
  201. }
  202. this.onload();
  203. this.onreadystatechange();
  204. };
  205. this.onload = function () {
  206. };
  207. this.readyState = 4;
  208. this.onreadystatechange = function () {
  209. };
  210. this.status = 0;
  211. this.statusText = "";
  212. this.responseBody = null;
  213. this.responseStream = null;
  214. this.responseXML = null;
  215. this.responseText = null;
  216. this.abort = function () {
  217. return;
  218. };
  219. this.getAllResponseHeaders = function () {
  220. return [];
  221. };
  222. this.getResponseHeader = function (n) {
  223. return null;
  224. };
  225. this.setRequestHeader = function (nm, val) {
  226. };
  227. this.open = function (meth, url, async) {
  228. method = meth;
  229. uri = url;
  230. };
  231. this.send = function (data) {
  232. var d = data || null;
  233. if (method == "GET") {
  234. getURL(uri, cb);
  235. } else {
  236. postURL(uri, data, cb);
  237. }
  238. };
  239. };
  240. }
  241. dojo.requireIf((djConfig["isDebug"] || djConfig["debugAtAllCosts"]), "dojo.debug");