2

我在创建新窗口和从我的扩展程序中添加内容时遇到问题。由于我不能在不丢失对新窗口的引用的情况下从脚本调用 window.open,因此我不得不使用 chrome.windows.create。

基本上我想要的是:

var newWindow = window.open();
newWindow.document.writeln( 'hello world' );

要在我的 chrome 扩展中创建等效项,我正在尝试这个:

chrome.windows.create({ type: 'popup' } , function(newWindow) {
                newWindow.tabs[0].executeScript(null, { code: 'document.write("hello world");' })
            });

新窗口已创建,但我似乎无法访问新创建窗口的文档对象。

4

1 回答 1

4

代码中的问题

  • 如果您创建一个没有任何 的新窗口URL,它将创建两个带有chrome://newtab和 的窗口blank popup window
  • 您必须使用带有正确参数的 chrome.tabs.executeScript,而不是newWindow.tabs[0].executeScript

工作版本

chrome.windows.create({
    type: 'popup',
    url: "https://www.google.co.in/"
}, function (newWindow) {
    console.log(newWindow);
    chrome.tabs.executeScript(newWindow.tabs[0].id, {
        code: 'document.write("hello world");'
    });
});
于 2013-01-17T07:01:57.120 回答