我网站的一些访问者加载了很多脚本,而不是我的网站链接。这可能是由于Superfish WindowShopper软件造成的。 这个库似乎也加载了jQuery,所以我的页面为一些访问者提供了多个版本的jQuery加载。
这会导致异常: Object [object Object]没有方法'dialog'
如何防止Superfish(或其他广告软件)窃取我的.dialog jQuery UI?
一些无意中链接的脚本:
https://appnext-a.akamaihd.net/source-ds.js
//www.superfish.com/ws/sf_main.jsp?dlsource=pcom&userId=4709955453116160291&CTID=p0
等等。每个浏览器的脚本各不相同。来自Akamaihd.com的第一个是经过修改的jQuery。也许还有更多。多个jQuery使.dialog消失(Uncaught TypeError: Object [object Object] has no method 'dialog')。
小提琴:http://jsfiddle.net/fybJ3/ 问题出现在Chrome和Firefox中。 IE显示对话框没有问题。
我目前的解决方法:发生此异常时显示旧式“警报”。
我该怎么办?
答案 0 :(得分:0)
最好的办法是使用noConflict()
隔离已知的jQuery实例。
正在发生的事情是新版本将覆盖第一个版本,因此任何绑定到第一个版本的插件都将被删除。
<强> See noConflict() API docs 强>