Chrome扩展程序:新标签

时间:2018-03-18 14:38:30

标签: javascript google-chrome-extension

所以,我正在获取一个动态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 });

但即使这样也行不通。我在这做错了什么?

2 个答案:

答案 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