2011-08-20 82 views
0

我想做一些看起来应该相当简单的事情,但是我无法让它工作。我无法理解Google Chrome扩展程序。请帮忙。

所有我希望它做的是,当在弹出按钮被点击我想单词“你好”登录到控制台。目前没有任何反应。没有错误信息。根本不值一提。

这里是我的manifest.jason文件

{ 
    "name": "Content Script", 
    "version": "1.0", 
    "description": "Experiments with content scripts.", 
    "permissions": [ 
     "tabs", "http://*/*", "https://*/*" 
    ], 
    "browser_action": { 
     "default_icon": "icon.png", 
     "popup": "popup.html" 
    } 
} 

这里是我的popup.html

<h1>Hello</h1> 

<script> 
function changeField() { 
    chrome.tabs.getSelected(null, function(tab) { 
     chrome.tabs.sendRequest(tab.id, {"code": "sayHello"}); 
    }); 
} 
</script> 

<button onclick="changeField();">Click</button> 

这里是我的contentscript.js

function sayHello() { 
    console.log("Hello"); 
} 


chrome.extension.onRequest.addListener(
    function(request, sender, response) { 
     if(request.code == 'sayHello') { 
      sayHello(); 
     } 
    } 
); 

我一直在阅读文档,但他们似乎跳过了很多东西。如果有人能解释为什么这不起作用,我会永远感激。

+0

你能够点击弹出按钮吗?另外,你正在检查哪个页面的控制台? –

+0

你的代码看起来不错,它应该在理论上起作用 – wukong

+0

@Digital Plane是的,我点击按钮,没有任何反应。我正在通过右键单击弹出窗口的图标并单击检查弹出窗口来查看控制台。 – MrMisterMan

回答

0

你没有注入你content script的网页,其中console生活。 添加content_scripts段的manifest.json文件。

a reference of manifest.json file上的Chrome扩展程序的官方网站。

{ 
    "name": "Content Script", 
    "version": "1.0", 
    "description": "Experiments with content scripts.", 
    "permissions": [ 
     "tabs", "http://*/*", "https://*/*" 
    ], 
    "browser_action": { 
     "popup": "popup.html" 
    }, 
    "content_scripts":[{ 
     "matches":["http://*/*"], 
     "js":["content_script.js"] 
    }] 
} 
+0

谢谢。我已经这样做了,但它仍然没有任何作用。 – MrMisterMan

+0

@MrMisterMan我自己测试它,它按预期工作,你可以在http://hellohtml5.googlecode.com/files/extension_sample.zip下载。您的代码未被修改。 – wukong

+0

谢谢你,你是对的。一旦我将'content_scripts'字段添加到它正在工作的清单文件中。但是我看不到这个,因为我正在检查弹出窗口的控制台,而不是内容脚本运行的页面的控制台。 D'哦!谢谢你的帮助。 – MrMisterMan