2013-03-01 158 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/*" 
    ] 
--- 
} 

添加权限参考

相关问题