所以,我正在获取一个动态URL,我想在新标签页中打开它。
PS:我目前正在内容脚本中写这个。 例如
var newURL = document.querySelectorAll("a")[lengthA].href
我想在新标签中打开它。在javascript中,我们很简单的做window.open在新标签中打开网址,但它没有工作,然后我谷歌一样,看到为了在新标签中打开网址,我们需要做..
chrome.tabs.create({ url: newURL });
所以我做了同样的事情,即
var newURL = document.querySelectorAll("a")[lengthA].href
chrome.tabs.create({ url: newURL });
但即使这样也行不通。我在这做错了什么?
答案 0 :(得分:1)
我为了你正在做的事情做了很多扩展,我用了这个:
function MyFunc() {
var win = window.open("https://www.google.com", '_blank');
win.focus;
}
如果你添加像这样的事件监听器
document.addEventListener('DOMContentLoaded', function () {
document.getElementById("MyButton").addEventListener("mousedown", MyFunc);
});
它应该完美地运作
答案 1 :(得分:1)
内容脚本无法访问所有Chrome API,因此您需要向活动页面发送消息。
在您的内容内容脚本中这样做是为了向您的活动页面发送消息
chrome.runtime.sendMessage({otab: "sendx", xname: newURL});
现在,在您的活动页面中,您需要收到要打开此消息的消息。
chrome.runtime.onMessage.addListener(function(request, sender, senderResponse){
if (request.otab == "sendx") {
chrome.tabs.create({url: request.xname });
}
})
请参阅此文档https://developer.chrome.com/extensions/content_scripts