解决与Javascript的eval()函数的冲突
我正在尝试使用Jquery Sizzle和Jquery core的合并库解决与Javascript的eval()函数的冲突,javascript,jquery,conflict,magento-1.9,conflicting-libraries,Javascript,Jquery,Conflict,Magento 1.9,Conflicting Libraries,我正在尝试使用Jquery Sizzle和Jquery core的合并库combined.js设置响应菜单,它发布在这里: 但是当我把它包含在一个已经加载了很多脚本的页面中时,它的eval函数冲突并产生错误,比如jQuery(smartWizard)和PrototypeJS 产生的错误如下: TypeError: $(...) is null $('options_2_2').advaiceContainer = 'options-2-container';$('options_2_2').c
combined.js
设置响应菜单,它发布在这里:
但是当我把它包含在一个已经加载了很多脚本的页面中时,它的eval
函数冲突并产生错误,比如jQuery(smartWizard)和PrototypeJS
产生的错误如下:
TypeError: $(...) is null
$('options_2_2').advaiceContainer = 'options-2-container';$('options_2_2').callb...
在combined.js>第623行
它涉及eval函数,所以我不知道如何解决它。我认为jQuery noConflict在这里不起作用,但还是欢迎您提出建议。我不知道这是临时解决方案还是永久解决方案(时间会告诉我们),但我通过在
eval
函数调用(在combined.js中)周围设置一个条件来解决冲突,如下所示:
if(t.indexOf("$('options_") == -1) {
e.eval.call(e, t)
}
因为我确信我的菜单元素的class或id属性中都没有“options”
因此,我的冲突现在已经解决,但如果您有更好、更干净的永久解决方案,请随时发布您的答案。它应该是$('.options_2_2')或$(''options_2_2'),这取决于options_2_2是类还是id,我就是这么想的think@BhawinParkeria正如我已经说过的,PrototypeJS也在页面中加载和使用,错误中的代码是PrototypeJS,其中
$('some')
表示id为'some'的元素