Fly*_*wat 12 javascript include
我有一个JS函数,可能偶尔会在某些页面上使用.它依赖于另一个JS文件(swfObject.js),但我想避免必须在整个地方都包含这个文件,因为大多数情况下这都是浪费的请求.
相反,我想创建一个可以根据需要将脚本引用注入页面DOM的泛型函数,因此如果调用此函数,它将检查脚本,如果它不存在,则加载它.
我很确定这是可能的(我不打算使用document.write),但在我冒险进入未知领域之前,有没有人之前做过这个,如果有的话,还有什么指针?
编辑:好的,我试过了,它适用于IE6和FF,我还没有测试过其他浏览器.
这是我的代码(Rev 2.0,现在有可选的回调):
function loadJSInclude(scriptPath, callback)
{
var scriptNode = document.createElement('SCRIPT');
scriptNode.type = 'text/javascript';
scriptNode.src = scriptPath;
var headNode = document.getElementsByTagName('HEAD');
if (headNode[0] != null)
headNode[0].appendChild(scriptNode);
if (callback != null)
{
scriptNode.onreadystagechange = callback;
scriptNode.onload = callback;
}
}
Run Code Online (Sandbox Code Playgroud)
并在具有依赖性的方法中:
var callbackMethod = function ()
{
// Code to do after loading swfObject
}
// Include SWFObject if its needed
if (typeof(SWFObject) == 'undefined')
loadJSInclude('/js/swfObject.js', callbackMethod);
else
calbackMethod();
Run Code Online (Sandbox Code Playgroud)
有什么建议?
查看 YUI Loader 实用程序。它是超级方便、不引人注目的 JavaScript,用于按需加载脚本。
以下是使用非 YUI 脚本的示例的链接:
http://developer.yahoo.com/yui/examples/yuiloader/yl-addmodule.html
归档时间: |
|
查看次数: |
8135 次 |
最近记录: |