2013-02-12 95 views
-1

我创建一个Chrome扩展 我创建了一个diretory与 1.background.js 2.icon.png 3.icon2.png 4.manifest.json 5.myscript.jsChrome扩展工作只为一个URL

我的manifest.json代码为myscript.js

{ 
    "manifest_version": 2, 

    "name": "One-click Kittens", 
    "description": "This extension demonstrates a browser action with kittens.", 
    "version": "1.0", 
"background": { 
    "scripts": ["background.js"] 
    }, 

    "permissions": [ "storage"], 
"content_scripts": [ 
    { 
     "matches": ["http://*/*"], 
     "js": ["myscript.js"] 
    } 
    ], 
    "browser_action": { 
    "default_icon": "icon.png" 
    } 
} 
  1. 代码是内容脚本

    document.body.innerHTML = '' + document.body.innerHTML + ''; var iframe = document.getElementById(“frame1”); function addingevent(){ chrome.extension.sendMessage({change:“icon”},function(response){console.log(response.resp); });

    } 
        iframe.onload = function(){ 
    
        var iframeDocument = iframe.contentDocument || iframe.contentWindow.document; 
        if(iframeDocument != null) 
        {var bb=iframeDocument.getElementById('mybutton'); 
        if(bb != null) 
        { 
        bb.addEventListener("click",addingevent,false) 
        alert("Hello World"); 
    
        }} 
    
        } 
    

和background.js的代码是这个扩展的

chrome.extension.onMessage.addListener(
    function(request, sender, sendResponse) { 

    console.log("from a content script:from the extension"); 

chrome.storage.local.get("icon",function(val){ 

if(val.icon == "icon1") 
{chrome.browserAction.setIcon({"path" :"icon2.png"},function(){}); 
chrome.storage.local.set({"icon":"icon"},function(){}); 
} 
else 
{chrome.browserAction.setIcon({"path" :"icon.png"},function(){}); 

chrome.storage.local.set({"icon":"icon1"},function(){}); 

} 

}); 

sendResponse({resp: "success"}); 

    }); 

目的是当在按钮上,其是在从URL http://onemoredemo.appspot.com/图标加载的帧应当之间切换用户点击icon.png和icon2.png

这个扩展工作完美时,我加载在网址与url http://onemoredemo.appspot.com/有框架创建,当我点击按钮它是更改图标,但当我打开url stackoverflow.com然后框架被创建并显示一个按钮,但当我点击按钮图标仍然是相同的我期待该图标将被改变而不考虑url为什么它不会改变其他网址? ?请说明原因

回答

0

有多种问题

  • 你期待一个DOM元素ID为frame1http://stackoverflow.com 的document.getElementById( “帧1”)存在;
  • document.body.innerHTML=''+document.body.innerHTML+'';的意义是什么?
+0

document.body.innerHTML ='

< iframe id="frame1" width="100%" height="10%" src="http://onemoredemo.appspot.com/">
'+document.body.innerHTML+'
'; – 2013-02-12 12:35:07

+0

我正在使用JavaScript添加frame1,然后得到它 – 2013-02-12 12:37:38

+0

由于某些格式化原因它已被省略,现在请回复 – 2013-02-12 12:38:03