动态jquery加载不工作在旧的IE
Dynamic jquery loading not working on old IE
这可以在现代浏览器上运行,但不能在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元素。
您在$(document).ready(task)
的末尾忘记了;
。
同样,'undefined'
和"undefined"
不需要引号。
(由于对OP的误解而删除)关于您的实现,请参阅这篇文章
你试过设置scriptNode.async = true
吗?
还有,你看过这篇文章吗?没有公认的答案,但OP指定了一个解决方案,在IE(但不是Chrome)工作。我建议您尝试适应该解决方案,测试看看它是否仍然不能在Chrome中工作,如果不能,我们可以继续从那里调试。以下是IE8的解决方案:
<div id="test">
<p>This is a test.</p>
</div>
<script>
if (typeof jQuery == 'undefined') {
s = document.createElement("script");
s.src = "//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
if (s.addEventListener) {
s.addEventListener("load", runScript, false);
} else if (s.readyState) {
s.onreadystatechange = runScript;
}
} else {
runScript();
}
function runScript() {
document.getElementsByTagName('head')[0].appendChild(s);
$('#test').css('font-size', '50px');
}
</script>
我说过,这不是我写的,我自己也没有测试过。
一个简单的解决方案是像这样包含jQuery:
window.jQuery || document.write('<script src="/js/jquery/jquery.js">'x3C/script>');
相关文章:
- Target=_blank don'我不在mozilla和IE工作
- jQUery Code没有'我不在IE工作
- 为什么这个书签脚本是't在IE工作
- 类构造函数super()没有'我不在IE工作
- onmousemove=null不会'我不在IE工作
- execCommand('另存为',true,'data.csv');不在IE工作
- 努力让第n个有悬停的孩子在IE工作
- Javascript Groovy按钮没有'我不在IE工作
- 属性='值'jquery选择没有'我不在IE工作
- atob不在IE工作
- 将图像附加到富文本编辑器dosen'我不在IE工作
- javascript没有'I don’我一直在IE工作
- 使用插件制作移动滑动导航,但它没有'我不在IE工作
- Video.js没有'我不在FF、IE工作
- dojo on.emit”;点击“;以及“;改变“;不在IE工作
- 为什么这个工具提示没有'不在IE工作吗?错误:应为对象
- document.getElementById('a').click()没有't在IE工作
- 插入符号插件的jquery;我不在IE工作
- 聚合物:点击事件在IE工作,但不是Chrome.如何修复
- 如何使IE工作预期与正则表达式提供的函数参数在拆分函数