New file |
0,0 → 1,145 |
if(!dojo._hasResource["dojo._base.window"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. |
dojo._hasResource["dojo._base.window"] = true; |
dojo.provide("dojo._base.window"); |
|
dojo._gearsObject = function(){ |
// summary: |
// factory method to get a Google Gears plugin instance to |
// expose in the browser runtime environment, if present |
var factory; |
var results; |
|
var gearsObj = dojo.getObject("google.gears"); |
if(gearsObj){ return gearsObj; } // already defined elsewhere |
|
if(typeof GearsFactory != "undefined"){ // Firefox |
factory = new GearsFactory(); |
}else{ |
if(dojo.isIE){ |
// IE |
try{ |
factory = new ActiveXObject("Gears.Factory"); |
}catch(e){ |
// ok to squelch; there's no gears factory. move on. |
} |
}else if(navigator.mimeTypes["application/x-googlegears"]){ |
// Safari? |
factory = document.createElement("object"); |
factory.setAttribute("type", "application/x-googlegears"); |
factory.setAttribute("width", 0); |
factory.setAttribute("height", 0); |
factory.style.display = "none"; |
document.documentElement.appendChild(factory); |
} |
} |
|
// still nothing? |
if(!factory){ return null; } |
|
// define the global objects now; don't overwrite them though if they |
// were somehow set internally by the Gears plugin, which is on their |
// dev roadmap for the future |
dojo.setObject("google.gears.factory", factory); |
return dojo.getObject("google.gears"); |
}; |
|
// see if we have Google Gears installed, and if |
// so, make it available in the runtime environment |
// and in the Google standard 'google.gears' global object |
dojo.isGears = (!!dojo._gearsObject())||0; |
|
// @global: dojo.doc |
|
// summary: |
// Current document object. 'dojo.doc' can be modified |
// for temporary context shifting. Also see dojo.withDoc(). |
// description: |
// Refer to dojo.doc rather |
// than referring to 'window.document' to ensure your code runs |
// correctly in managed contexts. |
dojo.doc = window["document"] || null; |
|
dojo.body = function(){ |
// summary: |
// return the body object associated with dojo.doc |
|
// Note: document.body is not defined for a strict xhtml document |
// Would like to memoize this, but dojo.doc can change vi dojo.withDoc(). |
return dojo.doc.body || dojo.doc.getElementsByTagName("body")[0]; |
} |
|
dojo.setContext = function(/*Object*/globalObject, /*DocumentElement*/globalDocument){ |
// summary: |
// changes the behavior of many core Dojo functions that deal with |
// namespace and DOM lookup, changing them to work in a new global |
// context. The varibles dojo.global and dojo.doc |
// are modified as a result of calling this function. |
dojo.global = globalObject; |
dojo.doc = globalDocument; |
}; |
|
dojo._fireCallback = function(callback, context, cbArguments){ |
// FIXME: should migrate to using "dojo.isString"! |
if(context && dojo.isString(callback)){ |
callback = context[callback]; |
} |
return (context ? callback.apply(context, cbArguments || [ ]) : callback()); |
} |
|
dojo.withGlobal = function( /*Object*/globalObject, |
/*Function*/callback, |
/*Object?*/thisObject, |
/*Array?*/cbArguments){ |
// summary: |
// Call callback with globalObject as dojo.global and |
// globalObject.document as dojo.doc. If provided, globalObject |
// will be executed in the context of object thisObject |
// description: |
// When callback() returns or throws an error, the dojo.global |
// and dojo.doc will be restored to its previous state. |
var rval; |
var oldGlob = dojo.global; |
var oldDoc = dojo.doc; |
try{ |
dojo.setContext(globalObject, globalObject.document); |
rval = dojo._fireCallback(callback, thisObject, cbArguments); |
}finally{ |
dojo.setContext(oldGlob, oldDoc); |
} |
return rval; |
} |
|
dojo.withDoc = function( /*Object*/documentObject, |
/*Function*/callback, |
/*Object?*/thisObject, |
/*Array?*/cbArguments){ |
// summary: |
// Call callback with documentObject as dojo.doc. If provided, |
// callback will be executed in the context of object thisObject |
// description: |
// When callback() returns or throws an error, the dojo.doc will |
// be restored to its previous state. |
var rval; |
var oldDoc = dojo.doc; |
try{ |
dojo.doc = documentObject; |
rval = dojo._fireCallback(callback, thisObject, cbArguments); |
}finally{ |
dojo.doc = oldDoc; |
} |
return rval; |
}; |
|
//Register any module paths set up in djConfig. Need to do this |
//in the hostenvs since hostenv_browser can read djConfig from a |
//script tag's attribute. |
(function(){ |
var mp = djConfig["modulePaths"]; |
if(mp){ |
for(var param in mp){ |
dojo.registerModulePath(param, mp[param]); |
} |
} |
})(); |
|
} |