2012-05-01 120 views
26

我只是在它上面书写Chrome扩展Chrome扩展运行提醒一个Hello World的一切,我的权限指定的网页加载完成,但它不工作,这是我的脚本特定页面

文件: manifest.json的

{ 
    "name": "Hello", 
    "version": "1.0", 
    "description": "Says hello to Google", 
    "permissions": ["http://*.google.com/"] 
    "browser_action": { 
    "popup": "Hello.html" 
    } 
} 

文件:的Hello.html

<script language="Javascript"> 
    alert("Hello World"); 
</script> 

回答

43

您正在添加一个浏览器操作弹出窗口,它将一个按钮添加到浏览器的右上角。 (这可能是不可见的,因为您没有为它指定图片,地址栏右侧应该有一些空白区域;请尝试点击它以在弹出窗口中看到您的​​。)

您想要的是content script。内容脚本可以注入到Chrome加载的每个页面中。您可以使用清单文件中的matchesexclude_matches子项目来指定哪些页面可以获得您的注入脚本。

{ 
    "name": "Hello", 
    "version": "1.0", 
    "description": "Says hello to Google", 
    "permissions": ["tabs", "*://*.google.com/*"], 
    "content_scripts": [ 
    { 
     "matches": ["*://*.google.com/*"], 
     "js": ["hello.js"] 
    } 
    ] 
} 

确保您重新命名​​到hello.js(和摆脱<script>标签)。

还请注意,我改变了你http://*.google.com/*://*.google.com/*,使其适用于谷歌通过HTTP和HTTPS(和尾*确保它能够适用于所有网页上google.com,不只是主页)。

+1

'tabs'权限是不必要的。事实上,所有的权限都是不需要的,因为'alert('Hello World!')'不能访问页面的DOM。网址格式遵循非常严格的规则,请参阅[匹配格式](http://code.google.com/chrome/extensions/match_patterns.html)。 –

+0

哎呀,那些是别的东西的权限;您确实不需要运行内容脚本的权限。 (但是,您在内容脚本中执行的具体操作可能需要权限。) – apsillers

+0

“摆脱'