![](/img/trans.png)
[英]How can I use jquery in a chrome extension content script when an older version is already on the page
[英]In a userscript/greasemonkey, how do you use a newer version of jQuery when the website already uses an older version?
我正在嘗試為已經在使用舊版 jQuery 的網站編寫用戶腳本。 如果我在用戶腳本中@require
一個現代版本,我會收到一個控制台錯誤,說明名為exists
的字段如何不存在。 由於這兩個版本的 jQuery 不兼容,有什么方法可以同時使用它們而不沖突?
也許有比這更好的解決方案,但這是我想出的: @require
jQuery 按照您通常想要的方式,然后在腳本的末尾放置一個$.noConflict(); . 由於您的某些用戶腳本功能可能需要使用最新版本,因此放置$.noConflict(); 可能還不夠; 作為最后一行。 為避免考慮這種可能性,您可以這樣編寫腳本:
...
// @require https://code.jquery.com/jquery-3.6.0.min.js
// ==/UserScript==
((jQueryAsAParameter) => {
// use jQueryAsAParameter in here, because $ may refer to the old version
...
})($);
$.noConflict();
如果您想了解更多信息,這稱為IIFE 。 樓上說的有點奇怪。 我這樣寫是為了讓下一個例子更容易理解。 這達到了相同的效果,但在我看來,它更慣用。
...
// @require https://code.jquery.com/jquery-3.6.0.min.js
// ==/UserScript==
(($) => {
...
})($);
$.noConflict();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.