0

你好,我是试图建立一个Chrome扩展我在这个新的,所以请耐心等待着我,和对不起我的英语不好就这是我做了什么:Chrome扩展连接

的manifest.json

{ 
    "name": "Linker ", 
    "manifest_version": 2, 
    "version": "0.1", 
    "description": "LInker", 
    "browser_action": { 
    "default_icon": "icon.png", 

    }, 

    "content_scripts": [ 
    { 
     "matches": ["http://example.com"], 

     "js": ["myscript.js"] 
    } 
    ], 

    "permissions": [ 
     "tabs", "http://*/*", "https://*/*" 
    ] 
} 

myscript.js

function clickHandler(e) { 
    chrome.tabs.update({url: "https://example.com"}); 
    window.close(); 
} 
document.addEventListener('DOMContentLoaded', function() { 
    document.getElementById('bt_click').addEventListener('click', clickHandler); 
}); 

我的想法是,当该插件在某个网站上运行,使用contenent脚本,一旦按下按钮,这个特定的网站上开设其他网站在同一标签或新标签上。

问题是,当我这样做时,发生nothinng现在我做错了什么? 我希望插件一旦启用就会在特定网站正常运行时始终运行。 我不明白请任何帮助将是伟大的!

+0

到目前为止,您做了哪些调试?查看关于如何或为什么不使用oncontentloaded的官方文档。 s.o上有很多现有的答案。已经回答了。 –

+0

我已经看到了控制台,也没有错误,我也看到了官方文档,但没有关于这个问题,你可以给我任何关于s.o的链接。这将是非常有益的,我仍然不明白为什么它不工作,我做错了什么?任何想法会是什么问题?谢谢 – Coders

+0

重复,但答案不是up-voted或接受,所以不能用它作为一个dup目标,但:[Chrome内容脚本不工作](http://stackoverflow.com/q/43233115) – Makyen

回答

0

如果myscript.js应该为内容脚本来运行,那么就没有必要使用这样的:

chrome.tabs.update({url: "https://example.com"}); 

要在当前标签页中打开某些URL,只需要执行:

// someUrl is your url 
location.href = someUrl 

所以修改脚本以下列方式:

function clickHandler(e) { 
    location.href = 'http://example.com'; 
} 
document.addEventListener('DOMContentLoaded', function() { 
    document.getElementById('bt_click').addEventListener('click', clickHandler); 
}); 

FYI:这个代码是在后台脚本中使用:

chrome.tabs.update