基本上,我有一個gmail chrome擴展,它將特定版本的jQuery注入主頁面(此工作正常),然後添加一些jQuery插件,以便稍後使用該擴展根據需要。多個jQuery版本在gmail chrome擴展中異步覆蓋
問題是,因爲所有的jQuery版本(據我所知)使用$來調用函數(和插件),如果另一個擴展進來並加載其版本的jQuery在我的頂部,然後我輸了我安裝的插件。有時候,我甚至看到另一個擴展使用的版本太舊,以致於我使用的一些「標準」jQuery函數不在其中,並且它們也是未定義的。
是否有任何簡單的方法將我的版本與可能在我的Gmail郵箱中播放的任何和所有其他擴展程序分開?我無法知道我的用戶可能要安裝哪些擴展程序,因此我不能僅以這種方式來解釋所有內容。現在有很多gmail chrome擴展,並且「玩得不錯」似乎是一個隨着時間的推移變得更加成問題的大問題。
任何想法如何「保護」我的jQuery版本和插件?
你是如何注入到jQuery的標籤? content_scripts在不同的上下文中被沙箱化,所以不同的擴展代碼不能相互交互。 – abraham
var q = document.createElement('script'); q.src = document.getElementById(「extensionPath」)。innerHTML +'js/jquery.js'; (document.head || document.documentElement).appendChild(q); – BryanP
以上是從內容腳本中以相同方式注入的腳本內注入的。 – BryanP