【问题标题】:Create new window and insert dynamic content in Chrome Extension在 Chrome 扩展程序中创建新窗口并插入动态内容
【发布时间】:2013-01-17 06:41:45
【问题描述】:

我在创建新窗口和从我的扩展程序中添加内容时遇到问题。由于我无法在不丢失对新窗口的引用的情况下从脚本调用 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");' })
            });

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

【问题讨论】:

    标签: google-chrome-extension


    【解决方案1】:

    代码中的问题

    • 如果您创建一个没有任何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");'
        });
    });
    

    【讨论】:

    • 你先生,真棒。谢谢!有没有办法打开一个空白窗口?我尝试使用 'about:blank' 但这不起作用。
    • @OmarStewey:到目前为止还不可能。
    • @OmarStewey @Sudarshan,你可以打开一个窗口,里面只有<html><body></body></html>
    • 是否可以在扩展中使用 url 来创建窗口,即 url:"local.html"?当我尝试时出现权限错误,“扩展清单必须请求访问此主机的权限。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多