阻止第三方JavaScript插入jQuery

prevent third party JavaScript to insert jQuery

本文关键字:插入 jQuery JavaScript 第三方      更新时间:2023-09-26

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

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

我的答案应该由他们而不是你们来应用,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")

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

实际上没有办法阻止脚本运行。我昨天也在处理类似的事情。有一些方法可以覆盖它所做的更改,但除了不拉入之外,没有任何动态方法可以阻止它运行