微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果我通过bookmarklet包含jQuery,它会破坏网站上的原始javascript吗?

我正在创建一个bookmarklet,当然我想使用jQuery.但是,如果我在网站上包含jQuery(在头部添加脚本标记),那么网站本身是否会工作,如果它还有其他一些js?

Martti Laine

解决方法

它会破裂吗……也许:)

有两个真正常见的原因让我感到头疼.如果他们正在使用另一个使用$for the它的主要对象的库,那么你将会遇到冲突,但是这可以解决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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐