这适用于现代浏览器,但它没有在 IE <= 9.0 上加载 jQuery。
下面是 index.html 文件中的代码:
loadJQuery(function () {
alert('hello');
});
然后在另一个文件(通过 包含<script src>
)我有:
if (typeof(loadJSInclude) == 'undefined') {
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;
}
}
function loadJQuery(task) {
if (typeof(jQuery) == "undefined") {
loadJSInclude('http://code.jquery.com/jquery-latest.min.js', function() {
$(document).ready(task)
});
} else {
$(document).ready(task);
}
}
}
关于为什么这在 IE <= 9.0 上不起作用的任何想法?我尝试向 loadJQuery 函数添加许多警报,它们都在显示,我的猜测是我错误地将节点添加到旧 IE 的 head 元素中。