使用代码(扩展开发)我们可以更改chrome中特定网站的弹出设置吗?

时间:2013-12-09 14:34:32

标签: google-chrome-extension

我有一个chrome扩展,使用window.open打开一个窗口,它位于background.js以外的test.js文件中 我无法使用     chrome.windows.create(); 直接在test.js中的方法,因为它触发错误“Uncaught TypeError:无法调用方法'创建'未定义” 所以我用     window.open( 'mysite.com'); chrome浏览器不允许打开弹出窗口。它说弹出窗口被阻止了。用户必须允许该站点的弹出窗口。 是否有任何方式通过代码,我可以允许弹出特定网站? 要么 我可以用任何方式使用chrome.windows.create();在除background.js以外的任何js文件中?

1 个答案:

答案 0 :(得分:0)

您不能以编程方式允许弹出窗口(afaik),但您可以(间接)使用 chrome.windows.create()

由于 chrome.windows 仅在后台页面中提供,因此您需要使用 Message Passing ,以便在内容之间进行通信 - 脚本和背景页面:

content-script

/* Instead of `window.open(someURL);` */
chrome.runtime.sendMessage({
    action: openWindow,
    url: someURL
});

背景页面

/* Listen for and respond to messages from content-scripts */
chrome.runtime.onMessage.addListener(function(msg, sender) {
    if ((msg.action === 'openWindow') && (msg.url !== undefined)) {
        chrome.windows.create({ url: msg.url });
    }
});

(当然,除了URL之外,您还可以指定其他参数。)