在Chrome扩展程序中从popup.html
连接到background.js
脚本。
当我单击按钮时,我希望后台脚本打开一个新选项卡。
背景脚本:
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
if (message == "output") {
var win = window.open('https://www.google.ca/webhp?hl=en&sa=X&ved=0ahUKEwjesaKd26TcAhWNw4MKHcN-CwgQPAgD', '_blank');
win.focus();
}
});
HTML:
<body>
<script src="next.js"></script>
<input id="output" type="button" value="Go To Alternative Forum"/>
</body>
下一步:
document.getElementById("output").addEventListener(("click"),function(){
chrome.runtime.sendMessage("output");
});
答案 0 :(得分:1)
您在代码中的脚本引用应具有src =“”属性而不是href =“”。此处的示例:
HTML:
<body>
<script src="next.js"></script>
<input onclick="start();" type="button" value="Go to google" />
</body>
next.js:
function start() {
var win = window.open('https://www.google.ca/webhp?hl=en&sa=X&ved=0ahUKEwjesaKd26TcAhWNw4MKHcN-//CwgQPAgD', '_blank');
win.focus();
}
答案 1 :(得分:0)
您可以通过window.open执行此操作。
但是,如果您想将html连接到background.js,则官方方法是将脚本next.js中的消息发送到background.js,然后background.js将创建新标签页以打开链接。
以下代码适用于您的情况:
next.js
document.getElementById("next").addEventListener("click",function(){
chrome.runtime.sendMessage({type: "openTab",value:code},function(response) {
});
});
popup.html
<body>
<script src="next.js"></script>
<input id="next" type="button" value="Go to google" />
</body>
background.js
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.type == "openTab") {
chrome.tabs.create({"url": "http://www.google.com", "selected": true}, function (tab) {
});
}
});