2017-10-10 232 views
0

我想在谷歌瀏覽器中開發我的第一個擴展,我正在學習以下教程:Tutorial 除了content.js中的兩行代碼外,一切都很好用問題是, content.js「不正確,我在第2行的Chrome控制檯中顯示」undefined「。 有人可以幫我解決問題,讓我知道爲什麼會發生這種情況? 我與你分享content.js的內容以幫助我。谷歌瀏覽器擴展開發

content.js內容:

var firstHref = $("a[href^='http']").eq(0).attr("href"); 
console.log(firstHref); 

清單/ JSON文件的內容:

{ 
"manifest_version": 2, 
"name": "My Cool Extension", 
"version": "0.2", 
"icons": { "128": "icon_128.png" }, 
"background": { 
"scripts": ["background.js"] 
}, 
"content_scripts": [ 
{ 
    "matches": [ 
    "<all_urls>" 
    ], 
    "js": ["jquery-2.1.3.min.js", "content.js"] 
} 
], 
"browser_action": { 
"default_icon": "icon.png" 
}, 
"permissions": [ 
"tabs" 
] 
} 
+0

你注入了jQuery嗎? –

+0

是的,我通過在我的擴展文件夾中添加jquery-2.1.3.min.js文件來完成此操作。我也在上面分享了我的清單文件,以便檢查自己。 – NaThAN

+0

請將[問題]置於主題上:包括[重複問題*的[mcve]]。對於Chrome擴展程序或Firefox Web擴展程序,幾乎總是需要包含* manifest.json *和一些背景,內容和/或彈出腳本/ HTML以及常用的網頁HTML /腳本。尋求調試幫助的問題(「爲什麼我的代碼不按我想要的方式工作?」)必須包括:(1)期望的行爲,(2)特定問題或錯誤,以及(3)重現它所需的最短代碼*在問題本身*。請參閱:[我可以在這裏詢問什麼主題?](/ help/on-topic)和[問]。 – Makyen

回答

0

我猜,你的內容腳本是整個文檔加載之前是loaded.That就是爲什麼它返回undefined。 爲了確保您的內容腳本注入至少得當,你應該在文件中定義「run_atmanifest.json 例子:

"content_scripts": [ 
     { 
      "matches": ["<all_urls>"], 
      "js": ["content.js"], 
      "run_at": "document_end", 
      "all_frames": true 
     } 
    ], 

Content Scripts parameters瞭解更多詳情。

+0

我將run_at和all_frames行添加到了manifest.json,但我仍然得到了相同的undefined。 – NaThAN

+0

您嘗試過哪個網站? – user3444693

相關問題