2015-10-11 57 views
3

我正在構建我的第一個Chrome擴展,並且遇到了一些麻煩。我想在popup.html上使用jQuery。彈出窗口否則工作正常,但jQuery不起作用。jQuery不能在Chrome擴展彈出框中工作

編輯︰我改變了它,這是新的代碼,但仍然無法正常工作。有任何想法嗎?我花了兩個多小時試圖弄清楚。我是一個初學者,在javascript和jquery中很生疏,所以它肯定會是一些小而令人尷尬的事......非常感謝!

manifest.json的

"content_scripts": [{ 
    "matches": [website], 
    "js": [ 
    "content.js", 
    "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"] 
    }], 

popup.html

<!DOCTYPE html> 
<html> 
<head> 
    <title>First Google Extension</title> 
    <style> 
    body { 
     font-family: "Segoe UI"; 
     width: 300px; 
     font-size: 14px; 
     }; 

    #changeMe { 
     color: blue; 
     font-style: bold; 
     }; 
    </style> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
</head> 

<body> 
    Welcome to my first Google Chrome Extension! <br> 
    <div id="changeMe"> 
     I'm different! 
    </div> 
</body> 

</html> 

popup.js

$(document).ready(function() { 
     $("#changeMe").append("Test!"); 
}); 

回答

5

您需要:

  1. 瞭解debug extension popups。它會告訴你一個信息錯誤。

  2. 說錯誤將引用內容安全策略。所以你需要閱讀關於extensions' CSP

  3. 閱讀上述文檔後,您需要解決的第一個問題是嘗試使用遠程腳本。這是possible,但對於像jQuery的,最好下載它的副本,將其添加到擴展的文件夾,並把它作爲一個本地文件:

    <!-- refers to extension's own folder --> 
    <script src="jquery.min.js"></script> 
    
  4. 其次,你需要收集裏面你自己的腳本文件並且像這樣包含它; inline code is not allowed in any form,內容腳本不適用於擴展頁面。

+0

它現在有效。謝謝! – microslayer

+0

所以,不可能在清單中加載jQuery以在popup.js中使用它? – karlihnos

+0

@karlihnos最佳做法是包含圖書館的本地副本。然後,您可以像往常一樣將其包含在彈出的HTML中。 – Xan