我网站的一些访问者加载了很多脚本,但我的网站没有链接到这些脚本。这可能是由于 Superfish WindowShopper 软件造成的。 这个库似乎也加载了 jQuery,因此我的页面为某些访问者加载了多个版本的 jQuery。
这会导致异常: 对象 [object Object] 没有方法“dialog”
如何防止 Superfish(或其他广告软件)窃取我的 jQuery UI .dialog?
一些无意链接的脚本:
https://appnext-a.akamaihd.net/source-ds.js
//www.superfish.com/ws/sf_main.jsp?dlsource=pcom&userId=4709955453116160291&CTID=p0
等等。脚本因浏览器而异。 Akamaihd.com 的第一个是修改后的 jQuery。也许还有更多。多个 jQueries 使 .dialog 消失 ( Uncaught TypeError: Object [object Object] has no method 'dialog' )。
fiddle :http://jsfiddle.net/fybJ3/ Chrome 和 Firefox 中出现问题。 IE 显示对话框没有问题。
我当前的解决方法:发生此异常时显示老式的“警报”。
我应该做什么?
- 能否修复 jQuery UI,以便在加载多个版本的 jQuery 时显示对话框?
- 我应该为对话框选择不同的库吗?
- 或者???
最佳答案
最好的选择是使用 noConflict()
隔离已知的 jQuery 实例。
发生的情况是新版本将覆盖第一个版本,因此绑定(bind)到第一个版本的任何插件都会被删除。
关于javascript - jQuery UI : Superfish WindowShopper steals . 对话框(),导致异常对象[对象对象]没有方法 'dialog',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24045676/