为什么用户脚本需要在页面已经包含jQuery的时候制作自己的jQuery副本?

时间:2017-10-13 13:18:11

标签: javascript jquery userscripts

我正在编写用户脚本以在我知道已包含jQuery库的站点上运行。所以,在我的第一次尝试中,我只是直接在用户脚本中调用jQuery函数 - 例如:

$('.some-class').css('color', 'red');

或其他什么。这很好用(使用Tampermonkey和Greasemonkey,我测试了它)。

但我正在查看其他人的代码,我看到他们在用户脚本的顶部制作了自己的jQuery副本。类似的东西:

var $, jQuery;
$ = jQuery = window.jQuery;

这是为了什么目的?为了能够访问用户脚本中的jQuery,似乎没有必要这样做,为什么人们会这样做呢?

在研究这个问题时,我发现an answer by hheimbuerger建议做同样的事情:

  

如果您想在已包含jQuery的网站上使用jQuery,请执行此操作   是走的路(灵感来自BrunoLM):

var $ = unsafeWindow.jQuery;

但答案并未解释为何这是推荐的。有人可以解释这背后的逻辑以及它的用途吗?如果我那会怎么样?我的用户会在其他浏览器中破解吗?我是否为某种安全风险做好准备?

0 个答案:

没有答案