我使用jQuery的旧用户脚本在Firefox 16中运行良好,但已停止使用Firefox 17版本。
所以,我使用版本16.0.2直到今天我尝试升级到18并且同样的问题仍然存在。首先,我认为可能是Greasemonkey并尝试了1.6版本和Scriptish插件而没有成功。所以我试图更新jQuery版本,没有解决方案。这不是一个脚本,它是所有jQuery代码。此外,还没有报告控制台上的错误。
有人知道发生了什么事吗?
firebug控制台报告的一些错误:
o.attachEvent("on"+e, h);
从:
window.addListener=function(o, e, h){
try{
o.attachEvent("on"+e, h);
}catch(a){
o.addEventListener(e, h, false);
}
}
另一个脚本的另一个错误
GM_addStyle ( (<><![CDATA[
从:
GM_addStyle ( (<><![CDATA[
#dtl {
position: absolute;
top: 0;
right: 0;
}
#dtl iframe {
width: 950;
height: 680;
border: none;
}
]]></>).toString () );
答案 0 :(得分:2)
jQuery和Greasemonkey在Firefox 17和18(as long as you keep the sandbox active)中运行良好; 这不是问题。
影响很多Greasemonkey脚本的FF 17改变的唯一主要因素是Firefox dropped support for E4X.
使用E4X,我们可以使用CDATA
产生强大的多线字符串效果,如下所示:
GM_addStyle ( (<><![CDATA[
#someNodeID {
position: fixed;
top: 0;
right: 0;
}
]]></>).toString () );
但是,既然不再支持E4X,我们必须重构使用CDATA
的每一段代码,使用javascript字符串转义(\
),如下所示:
GM_addStyle ( ' \
#someNodeID { \
position: fixed; \
top: 0; \
right: 0; \
} \
' );
使用该转义时,您必须特别注意混合'
和"
引号的方式。