jquery - 如果我通过书签包含 jQuery,它会破坏网站上的原始 JavaScript 吗?

标签 jquery bookmarklet

我正在创建一个小书签,当然我想使用 jQuery。但是,如果我在网站上包含 jQuery(在头部附加脚本标签),如果网站上有其他 js,网站本身还能工作吗?

马蒂·莱恩

最佳答案

它会坏吗?......也许:)

我的脑海中浮现出两个非常常见的原因导致这种情况发生。如果他们使用另一个使用 $ 作为其主要对象的库,那么您将遇到冲突,但这可以通过 jQuery.noConflict() 解决。 ,像这样:

var $j = jQuery.noConflict(); //give `$` back to whatever had it...
$j("selector").doSomething(); //use the $j you assigned or jQuery from now on

另一个是他们已经加载了 jQuery(也可能是不同的版本)。我只需在加载脚本之前添加一个 jQuery 对象测试,如下所示:

if (typeof jQuery == 'undefined') { //load jQuery }
//jQuery has been loaded, either by your or originally, keep going...

这个针对已加载的解决方案有一个警告,如果他们有版本的 jQuery,您将只能拥有该版本的功能。我不知道有什么方法可以在页面中加载旧版本和新版本,并且不会出现很多奇怪的行为……它的设计目的并不是这样做。

此外,对于 jQuery 已加载且 $ 的情况,我会将这两种解决方法结合起来,如下所示:

if (typeof jQuery == 'undefined') {
  var used = typeof $ != 'undefined';
  //load jQuery 
  if(used) jQuery.noConflict();
}
window.$j = jQuery;
//always use $j in your script, it'll always be present.

关于jquery - 如果我通过书签包含 jQuery,它会破坏网站上的原始 JavaScript 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2707668/

相关文章:

jquery - 是否可以使用 jQuery 以编程方式设置 html attr 值?

javascript - 在 Javascript 中获取 HTML 5 圆圈的属性

javascript - 在表中选择适当的tr - jquery

javascript - 如何同时执行动画和淡出?

javascript - 为什么 setTimeout() 函数只运行一次?

javascript - Bookmarklet目标页面DOM遍历。如何?

javascript - 获取动态加载的跨域 JavaScript 文件当前执行的 JavaScript 代码的文件路径

javascript - 您可以使用书签将网页嵌入到网站吗?

javascript - 服务器如何验证小书签(链接中的 javascript)?如何保持安全?

Jquery 终端文本格式化语法,我做错了什么?