我发帖加载jQuery,它在 Opera (仅限Opera)中导致CSS错误。我创建了一个JSFiddle来演示。
使用一些CSS来设置HTML和BODY标签的样式,例如:
html {
background: #6B9AB6;
}
body {
background: white;
max-width: 10em;
}
然后发布加载jQuery(使用简单的setTimeout
进行演示):
setTimeout(function(){
var script_tag = document.createElement('script');
script_tag.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js';
var script_sib = document.getElementsByTagName('script')[0];
script_sib.parentNode.insertBefore(script_tag, script_sib);
}, 2000);
导致显示正确的CSS,然后闪烁到无样式的HTML标记。使用Opera的DragonFly并更改background-attachment
或background-origin
动态修复此问题。如果以编程方式执行此操作,则情况并非如此。
有没有办法让Opera使用postloaded jQuery行事?如果您有任何想法,请随意更新JSFiddle。
答案 0 :(得分:3)
它在jQuery 1.6版中的回归; jQuery version 1.5.2 works just fine
目前Aderty有is a patch:
可以在jquery-1.6.1.js的ligne [行号] 1288上解决该错误。
替换:
“documentElement.insertBefore(body,documentElement.firstChild);”
通过
“documentElement.appendChild(body);”
如果您自己托管图书馆,那就会产生奇迹。
编辑:版本1.6.2修复了此问题(目前位于jQuery's GIT repo中)。