2013-03-01 157 views
5

我想製作Chrome擴展程序來修改Google搜索結果頁面。我知道我可以使用內容腳本來做到這一點,因爲它有能力做到這一點。但不幸的是它失敗了。我寫了代碼使用Chrome擴展程序修改Google搜索結果頁面

$('h3.r').append('<b>a</b>') 

或其他與DOM操作相關的東西都失敗了。但是,如果我只是寫

alert('aa') 

document.body.style.backgroundColor='green' 

,它的工作原理。爲什麼? 順便說一句,我想要一個調試,但是當我打開開發工具時,我找不到我的擴展內容腳本。我可以看到其他擴展的內容腳本。

回答

3

您是否在清單中將jQuery添加到content_script中?

如果你使用jQuery,你必須寫manifest.json這樣的:

"content_scripts":[ 
     { 
      "matches":["http://www.google.com/*"], 
      "js":["jquery-1.9.1.min.js", "contentscripts.js"] 
     } 
] 

OK,谷歌搜索結果頁面的讀取後,頁面的源代碼,我想我知道是什麼問題:

谷歌負荷搜索所以,當你改變查詢詞並再次搜索時,頁面不會刷新,這就是爲什麼你不能在搜索結果中獲得任何DOM元素。

這意味着您必須爲DOMNodeInserted添加事件偵聽器。

代碼是這樣的:

function fundH3(){ 
    $('h3.r').append('<b>a</b>') 

} 

searchResultArea.addEventListener('DOMNodeInserted', findH3); 
+0

是啊,我做到了。現在絕對的問題是我無法獲取頁面的任何DOM節點。並且似乎該腳本是在加載DOM之前運行的,但我添加了run_at:document_end – user2086454 2013-03-01 05:24:42

+0

@ user2086454:您是否爲清單添加權限,共享相關代碼,這將對後續操作有所幫助 – Sudarshan 2013-03-01 06:35:25

+0

嘿,我更新了答案,我希望這會有所幫助 – 2013-03-01 08:23:18

0

的URL(S)定位到清單文件

{ 
--- 
    "permissions": [ 
     "https: //www.google.co.in/*" 
    ] 
--- 
} 

添加權限參考

相關問題