阻止第三方JavaScript插入jQuery

时间:2016-01-12 14:19:27

标签: javascript jquery

我们有一个包含jQuery和第三方JavaScript API的页面。这个api在运行时动态地将jQuery插入到页面中。它会导致冲突。

如何阻止第三方API将jQuery添加到页面?

2 个答案:

答案 0 :(得分:3)

实际上还没有一种方法可以阻止脚本运行。我昨天正在处理类似的事情。有很多方法可以覆盖它明显做出的改变,但没有动态的方法可以阻止它运行,而不是仅仅将其拉入。

答案 1 :(得分:3)

我的答案应该由他们应用而不是你,Third-Party Javascript的第一条规则是:

"You Don't own the website"

所以如果他们想要使用jQuery,那么他们必须使用jQuery noConflict这是处理使用多个jQuery版本的网站的最佳方式(你和他们的):

将jQuery完全移动到另一个对象中的新命名空间。

var j = jQuery.noConflict(true);
// then you can say
j( "div p" ).hide();

如果你添加这一行,然后定义一个新的jQuery,那么j将是旧版本的别名,jQuery - $将默认为新版本的别名。

如果你想确定;你可以查看页面中存在的jQuery版本:

j.fn.jquery      // this should show you your jQuery version 
jQuery.fn.jquery // this should show you their jQuery version

如果您仍然需要使用此第三方javascript并且无法更改其代码,则可以使用它,您可以阅读有关jQuery noconflict的更多信息

您可以将jQuery分配给您使用的命名空间:mycode.$mycode.jQuery,以便稍后使用:

mycode.$("div p")

使用命名空间以确保没有其他人在同一代码中写入可能会覆盖您的变量总是更安全。