我正在编写用户脚本以在我知道已包含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;
但答案并未解释为何这是推荐的。有人可以解释这背后的逻辑以及它的用途吗?如果我不那会怎么样?我的用户会在其他浏览器中破解吗?我是否为某种安全风险做好准备?