簡體   English   中英

在用戶腳本/greasemonkey 中,當網站已經使用舊版本時,如何使用更新版本的 jQuery?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM