我在寫一個Chrome擴展程序,它可以擺弄頁面的佈局。我想用最新版本的jQuery來做到這一點。當舊版本已經在頁面上時,如何在Chrome擴展內容腳本中使用jquery
有問題的頁面已經包含jQuery 1.4.4版本作爲其腳本的一部分。
如果我包含更新版本的jQuery,頁面會掛起。我如何包含最新版本的jQuery,以便它僅對我的內容腳本可用,並且不會影響頁面上已有的腳本?
我在寫一個Chrome擴展程序,它可以擺弄頁面的佈局。我想用最新版本的jQuery來做到這一點。當舊版本已經在頁面上時,如何在Chrome擴展內容腳本中使用jquery
有問題的頁面已經包含jQuery 1.4.4版本作爲其腳本的一部分。
如果我包含更新版本的jQuery,頁面會掛起。我如何包含最新版本的jQuery,以便它僅對我的內容腳本可用,並且不會影響頁面上已有的腳本?
如果你注入你的jQuery作爲內容腳本,它將是sandboxed,不管父母頁面使用什麼,你都不會有任何衝突。
通過使用它的No Conflict mode並在閉包中執行您的代碼,您可以基本命名空間不同的jQuery版本。例如:
<script src="jquery-1.6.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
jq162 = jQuery.noConflict(true);
(function ($) {
$(function() {
// Your document ready code here
});
})(jq162);
</script>
請注意,這個聲明使得jq162
提供給全球範圍內,因此可以重複使用在其他地方。如果你希望本地範圍jQuery的實例,請將其設爲var
。
_「例如,內容腳本可能包含JQuery v1,頁面可能包含JQuery v2,它們不會相互衝突。「_ – Eric