Chrome 扩展在新标签页中运行 js

时间:2021-02-01 15:29:13

标签: javascript google-chrome google-chrome-extension

我的 popup.js:

chrome.tabs.create({ url: "https://mywebsite.com" })

如何在新创建的选项卡中运行此 js?

chrome.tabs.executeScript(null, {
  code: "document.getElementById('test').value='test';"
});

1 个答案:

答案 0 :(得分:0)

创建标签时,可以传递一个回调函数,接收新创建的标签进行操作。此选项卡有一个 id,用于指定应在哪个选项卡中执行脚本。除非您指定选项卡 ID,否则脚本将在当前选项卡中执行,而不是在新创建的选项卡中执行。 因此你想要的是大致

chrome.tabs.create({ url: "https://mywebsite.com" }, tab => {
  chrome.tabs.executeScript(tab.id, {
    code: "document.getElementById('test').value='test';"
  });
});

或者更优雅

function createTab(options) {
  return new Promise(resolve => {
    chrome.tabs.create(options, resolve);
  });
}

async function main() {
  const tab = await createTab({ url: "https://mywebsite.com" });

  chrome.tabs.executeScript(tab.id, {
    code: "document.getElementById('test').value='test';"
  });
}

main();

有关详细信息,请参阅 Chrome Tab API documentation

相关问题