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

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. (function () {
  10. if (djConfig.allowQueryConfig) {
  11. var baseUrl = document.location.toString();
  12. var params = baseUrl.split("?", 2);
  13. if (params.length > 1) {
  14. var paramStr = params[1];
  15. var pairs = paramStr.split("&");
  16. for (var x in pairs) {
  17. var sp = pairs[x].split("=");
  18. if ((sp[0].length > 9) && (sp[0].substr(0, 9) == "djConfig.")) {
  19. var opt = sp[0].substr(9);
  20. try {
  21. djConfig[opt] = eval(sp[1]);
  22. }
  23. catch (e) {
  24. djConfig[opt] = sp[1];
  25. }
  26. }
  27. }
  28. }
  29. }
  30. if (((djConfig["baseScriptUri"] == "") || (djConfig["baseRelativePath"] == "")) && (document && document.getElementsByTagName)) {
  31. var scripts = document.getElementsByTagName("script");
  32. var rePkg = /(__package__|dojo|bootstrap1).js([?.]|$)/i;
  33. for (var i = 0; i < scripts.length; i++) {
  34. var src = scripts[i].getAttribute("src");
  35. if (!src) {
  36. continue;
  37. }
  38. var m = src.match(rePkg);
  39. if (m) {
  40. var root = src.substring(0, m.index);
  41. if (src.indexOf("bootstrap1") > -1) {
  42. root += "../";
  43. }
  44. if (!this["djConfig"]) {
  45. djConfig = {};
  46. }
  47. if (djConfig["baseScriptUri"] == "") {
  48. djConfig["baseScriptUri"] = root;
  49. }
  50. if (djConfig["baseRelativePath"] == "") {
  51. djConfig["baseRelativePath"] = root;
  52. }
  53. break;
  54. }
  55. }
  56. }
  57. var dr = dojo.render;
  58. var drh = dojo.render.html;
  59. var drs = dojo.render.svg;
  60. var dua = (drh.UA = navigator.userAgent);
  61. var dav = (drh.AV = navigator.appVersion);
  62. var t = true;
  63. var f = false;
  64. drh.capable = t;
  65. drh.support.builtin = t;
  66. dr.ver = parseFloat(drh.AV);
  67. dr.os.mac = dav.indexOf("Macintosh") >= 0;
  68. dr.os.win = dav.indexOf("Windows") >= 0;
  69. dr.os.linux = dav.indexOf("X11") >= 0;
  70. drh.opera = dua.indexOf("Opera") >= 0;
  71. drh.khtml = (dav.indexOf("Konqueror") >= 0) || (dav.indexOf("Safari") >= 0);
  72. drh.safari = dav.indexOf("Safari") >= 0;
  73. var geckoPos = dua.indexOf("Gecko");
  74. drh.mozilla = drh.moz = (geckoPos >= 0) && (!drh.khtml);
  75. if (drh.mozilla) {
  76. drh.geckoVersion = dua.substring(geckoPos + 6, geckoPos + 14);
  77. }
  78. drh.ie = (document.all) && (!drh.opera);
  79. drh.ie50 = drh.ie && dav.indexOf("MSIE 5.0") >= 0;
  80. drh.ie55 = drh.ie && dav.indexOf("MSIE 5.5") >= 0;
  81. drh.ie60 = drh.ie && dav.indexOf("MSIE 6.0") >= 0;
  82. drh.ie70 = drh.ie && dav.indexOf("MSIE 7.0") >= 0;
  83. var cm = document["compatMode"];
  84. drh.quirks = (cm == "BackCompat") || (cm == "QuirksMode") || drh.ie55 || drh.ie50;
  85. dojo.locale = dojo.locale || (drh.ie ? navigator.userLanguage : navigator.language).toLowerCase();
  86. dr.vml.capable = drh.ie;
  87. drs.capable = f;
  88. drs.support.plugin = f;
  89. drs.support.builtin = f;
  90. var tdoc = window["document"];
  91. var tdi = tdoc["implementation"];
  92. if ((tdi) && (tdi["hasFeature"]) && (tdi.hasFeature("org.w3c.dom.svg", "1.0"))) {
  93. drs.capable = t;
  94. drs.support.builtin = t;
  95. drs.support.plugin = f;
  96. }
  97. if (drh.safari) {
  98. var tmp = dua.split("AppleWebKit/")[1];
  99. var ver = parseFloat(tmp.split(" ")[0]);
  100. if (ver >= 420) {
  101. drs.capable = t;
  102. drs.support.builtin = t;
  103. drs.support.plugin = f;
  104. }
  105. } else {
  106. }
  107. })();
  108. dojo.hostenv.startPackage("dojo.hostenv");
  109. dojo.render.name = dojo.hostenv.name_ = "browser";
  110. dojo.hostenv.searchIds = [];
  111. dojo.hostenv._XMLHTTP_PROGIDS = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP", "Msxml2.XMLHTTP.4.0"];
  112. dojo.hostenv.getXmlhttpObject = function () {
  113. var http = null;
  114. var last_e = null;
  115. try {
  116. http = new XMLHttpRequest();
  117. }
  118. catch (e) {
  119. }
  120. if (!http) {
  121. for (var i = 0; i < 3; ++i) {
  122. var progid = dojo.hostenv._XMLHTTP_PROGIDS[i];
  123. try {
  124. http = new ActiveXObject(progid);
  125. }
  126. catch (e) {
  127. last_e = e;
  128. }
  129. if (http) {
  130. dojo.hostenv._XMLHTTP_PROGIDS = [progid];
  131. break;
  132. }
  133. }
  134. }
  135. if (!http) {
  136. return dojo.raise("XMLHTTP not available", last_e);
  137. }
  138. return http;
  139. };
  140. dojo.hostenv._blockAsync = false;
  141. dojo.hostenv.getText = function (uri, async_cb, fail_ok) {
  142. if (!async_cb) {
  143. this._blockAsync = true;
  144. }
  145. var http = this.getXmlhttpObject();
  146. function isDocumentOk(http) {
  147. var stat = http["status"];
  148. return Boolean((!stat) || ((200 <= stat) && (300 > stat)) || (stat == 304));
  149. }
  150. if (async_cb) {
  151. var _this = this, timer = null, gbl = dojo.global();
  152. var xhr = dojo.evalObjPath("dojo.io.XMLHTTPTransport");
  153. http.onreadystatechange = function () {
  154. if (timer) {
  155. gbl.clearTimeout(timer);
  156. timer = null;
  157. }
  158. if (_this._blockAsync || (xhr && xhr._blockAsync)) {
  159. timer = gbl.setTimeout(function () {
  160. http.onreadystatechange.apply(this);
  161. }, 10);
  162. } else {
  163. if (4 == http.readyState) {
  164. if (isDocumentOk(http)) {
  165. async_cb(http.responseText);
  166. }
  167. }
  168. }
  169. };
  170. }
  171. http.open("GET", uri, async_cb ? true : false);
  172. try {
  173. http.send(null);
  174. if (async_cb) {
  175. return null;
  176. }
  177. if (!isDocumentOk(http)) {
  178. var err = Error("Unable to load " + uri + " status:" + http.status);
  179. err.status = http.status;
  180. err.responseText = http.responseText;
  181. throw err;
  182. }
  183. }
  184. catch (e) {
  185. this._blockAsync = false;
  186. if ((fail_ok) && (!async_cb)) {
  187. return null;
  188. } else {
  189. throw e;
  190. }
  191. }
  192. this._blockAsync = false;
  193. return http.responseText;
  194. };
  195. dojo.hostenv.defaultDebugContainerId = "dojoDebug";
  196. dojo.hostenv._println_buffer = [];
  197. dojo.hostenv._println_safe = false;
  198. dojo.hostenv.println = function (line) {
  199. if (!dojo.hostenv._println_safe) {
  200. dojo.hostenv._println_buffer.push(line);
  201. } else {
  202. try {
  203. var console = document.getElementById(djConfig.debugContainerId ? djConfig.debugContainerId : dojo.hostenv.defaultDebugContainerId);
  204. if (!console) {
  205. console = dojo.body();
  206. }
  207. var div = document.createElement("div");
  208. div.appendChild(document.createTextNode(line));
  209. console.appendChild(div);
  210. }
  211. catch (e) {
  212. try {
  213. document.write("<div>" + line + "</div>");
  214. }
  215. catch (e2) {
  216. window.status = line;
  217. }
  218. }
  219. }
  220. };
  221. dojo.addOnLoad(function () {
  222. dojo.hostenv._println_safe = true;
  223. while (dojo.hostenv._println_buffer.length > 0) {
  224. dojo.hostenv.println(dojo.hostenv._println_buffer.shift());
  225. }
  226. });
  227. function dj_addNodeEvtHdlr(node, evtName, fp) {
  228. var oldHandler = node["on" + evtName] || function () {
  229. };
  230. node["on" + evtName] = function () {
  231. fp.apply(node, arguments);
  232. oldHandler.apply(node, arguments);
  233. };
  234. return true;
  235. }
  236. dojo.hostenv._djInitFired = false;
  237. function dj_load_init(e) {
  238. dojo.hostenv._djInitFired = true;
  239. var type = (e && e.type) ? e.type.toLowerCase() : "load";
  240. if (arguments.callee.initialized || (type != "domcontentloaded" && type != "load")) {
  241. return;
  242. }
  243. arguments.callee.initialized = true;
  244. if (typeof (_timer) != "undefined") {
  245. clearInterval(_timer);
  246. delete _timer;
  247. }
  248. var initFunc = function () {
  249. if (dojo.render.html.ie) {
  250. dojo.hostenv.makeWidgets();
  251. }
  252. };
  253. if (dojo.hostenv.inFlightCount == 0) {
  254. initFunc();
  255. dojo.hostenv.modulesLoaded();
  256. } else {
  257. dojo.hostenv.modulesLoadedListeners.unshift(initFunc);
  258. }
  259. }
  260. if (document.addEventListener) {
  261. if (dojo.render.html.opera || (dojo.render.html.moz && (djConfig["enableMozDomContentLoaded"] === true))) {
  262. document.addEventListener("DOMContentLoaded", dj_load_init, null);
  263. }
  264. window.addEventListener("load", dj_load_init, null);
  265. }
  266. if (dojo.render.html.ie && dojo.render.os.win) {
  267. document.attachEvent("onreadystatechange", function (e) {
  268. if (document.readyState == "complete") {
  269. dj_load_init();
  270. }
  271. });
  272. }
  273. if (/(WebKit|khtml)/i.test(navigator.userAgent)) {
  274. var _timer = setInterval(function () {
  275. if (/loaded|complete/.test(document.readyState)) {
  276. dj_load_init();
  277. }
  278. }, 10);
  279. }
  280. if (dojo.render.html.ie) {
  281. dj_addNodeEvtHdlr(window, "beforeunload", function () {
  282. dojo.hostenv._unloading = true;
  283. window.setTimeout(function () {
  284. dojo.hostenv._unloading = false;
  285. }, 0);
  286. });
  287. }
  288. dj_addNodeEvtHdlr(window, "unload", function () {
  289. dojo.hostenv.unloaded();
  290. if ((!dojo.render.html.ie) || (dojo.render.html.ie && dojo.hostenv._unloading)) {
  291. dojo.hostenv.unloaded();
  292. }
  293. });
  294. dojo.hostenv.makeWidgets = function () {
  295. var sids = [];
  296. if (djConfig.searchIds && djConfig.searchIds.length > 0) {
  297. sids = sids.concat(djConfig.searchIds);
  298. }
  299. if (dojo.hostenv.searchIds && dojo.hostenv.searchIds.length > 0) {
  300. sids = sids.concat(dojo.hostenv.searchIds);
  301. }
  302. if ((djConfig.parseWidgets) || (sids.length > 0)) {
  303. if (dojo.evalObjPath("dojo.widget.Parse")) {
  304. var parser = new dojo.xml.Parse();
  305. if (sids.length > 0) {
  306. for (var x = 0; x < sids.length; x++) {
  307. var tmpNode = document.getElementById(sids[x]);
  308. if (!tmpNode) {
  309. continue;
  310. }
  311. var frag = parser.parseElement(tmpNode, null, true);
  312. dojo.widget.getParser().createComponents(frag);
  313. }
  314. } else {
  315. if (djConfig.parseWidgets) {
  316. var frag = parser.parseElement(dojo.body(), null, true);
  317. dojo.widget.getParser().createComponents(frag);
  318. }
  319. }
  320. }
  321. }
  322. };
  323. dojo.addOnLoad(function () {
  324. if (!dojo.render.html.ie) {
  325. dojo.hostenv.makeWidgets();
  326. }
  327. });
  328. try {
  329. if (dojo.render.html.ie) {
  330. document.namespaces.add("v", "urn:schemas-microsoft-com:vml");
  331. document.createStyleSheet().addRule("v\:*", "behavior:url(#default#VML)");
  332. }
  333. }
  334. catch (e) {
  335. }
  336. dojo.hostenv.writeIncludes = function () {
  337. };
  338. if (!dj_undef("document", this)) {
  339. dj_currentDocument = this.document;
  340. }
  341. dojo.doc = function () {
  342. return dj_currentDocument;
  343. };
  344. dojo.body = function () {
  345. return dojo.doc().body || dojo.doc().getElementsByTagName("body")[0];
  346. };
  347. dojo.byId = function (id, doc) {
  348. if ((id) && ((typeof id == "string") || (id instanceof String))) {
  349. if (!doc) {
  350. doc = dj_currentDocument;
  351. }
  352. var ele = doc.getElementById(id);
  353. if (ele && (ele.id != id) && doc.all) {
  354. ele = null;
  355. eles = doc.all[id];
  356. if (eles) {
  357. if (eles.length) {
  358. for (var i = 0; i < eles.length; i++) {
  359. if (eles[i].id == id) {
  360. ele = eles[i];
  361. break;
  362. }
  363. }
  364. } else {
  365. ele = eles;
  366. }
  367. }
  368. }
  369. return ele;
  370. }
  371. return id;
  372. };
  373. dojo.setContext = function (globalObject, globalDocument) {
  374. dj_currentContext = globalObject;
  375. dj_currentDocument = globalDocument;
  376. };
  377. dojo._fireCallback = function (callback, context, cbArguments) {
  378. if ((context) && ((typeof callback == "string") || (callback instanceof String))) {
  379. callback = context[callback];
  380. }
  381. return (context ? callback.apply(context, cbArguments || []) : callback());
  382. };
  383. dojo.withGlobal = function (globalObject, callback, thisObject, cbArguments) {
  384. var rval;
  385. var oldGlob = dj_currentContext;
  386. var oldDoc = dj_currentDocument;
  387. try {
  388. dojo.setContext(globalObject, globalObject.document);
  389. rval = dojo._fireCallback(callback, thisObject, cbArguments);
  390. }
  391. finally {
  392. dojo.setContext(oldGlob, oldDoc);
  393. }
  394. return rval;
  395. };
  396. dojo.withDoc = function (documentObject, callback, thisObject, cbArguments) {
  397. var rval;
  398. var oldDoc = dj_currentDocument;
  399. try {
  400. dj_currentDocument = documentObject;
  401. rval = dojo._fireCallback(callback, thisObject, cbArguments);
  402. }
  403. finally {
  404. dj_currentDocument = oldDoc;
  405. }
  406. return rval;
  407. };
  408. }
  409. dojo.requireIf((djConfig["isDebug"] || djConfig["debugAtAllCosts"]), "dojo.debug");
  410. dojo.requireIf(djConfig["debugAtAllCosts"] && !window.widget && !djConfig["useXDomain"], "dojo.browser_debug");
  411. dojo.requireIf(djConfig["debugAtAllCosts"] && !window.widget && djConfig["useXDomain"], "dojo.browser_debug_xd");