Google Chrome扩展在用Javascript打开的弹出窗口中工作吗?
所以我正在创建一个扩展,它需要在由我的网站触发的弹出窗口中工作。。。标准JavascriptGoogle Chrome扩展在用Javascript打开的弹出窗口中工作吗?,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,所以我正在创建一个扩展,它需要在由我的网站触发的弹出窗口中工作。。。标准Javascript function openwin(){ window.open('http://stackoverflow.com','myname','height=100,width=100'); } 现在我需要在该窗口中加载扩展。假设扩展的目的只是提醒一条消息,当我加载该窗口时,background.js应该启动并执行该操作,对吗?chrome.windows.create(object createD
function openwin(){
window.open('http://stackoverflow.com','myname','height=100,width=100');
}
现在我需要在该窗口中加载扩展。假设扩展的目的只是提醒一条消息,当我加载该窗口时,background.js应该启动并执行该操作,对吗?
chrome.windows.create(object createData,function callback)
创建(打开)具有任何可选大小、位置或默认URL的新浏览器
发件人:
试试这个例子:
var props = {
url: "http://www.stackoverflow.com",
height: "100",
width: "100",
type: "popup"
}
chrome.windows.create(props, function(windowObj){
console.log("Here's the window object.");
console.dir(windowObj);
});
下面是我在浏览API后的答案。正如我所说,它会检查正在创建的每个新窗口,并检查该窗口的参数。以下代码可以添加到扩展名的background.js文件中:
chrome.windows.onCreated.addListener(function(win){
chrome.windows.get(win.id,{populate:true},function(tabwin){
setTimeout(function(){
chrome.tabs.executeScript(tabwin.tabs[0].id,{code:"alert(JSON.stringify(window));",runAt:'document_idle'});
},500);
});
});
谢谢你的回答,拉里。我更喜欢将代码保留在网站的范围内,并让扩展进行修改。尽管如此,我还是想出了一个解决办法。确保您已应用选项卡权限,以及弹出窗口可能访问的任何网站。从那里,监听正在创建的新窗口,并对每个窗口进行测试,以查看参数是否匹配(即window.name就是您要查找的参数)。在我撰写本文时,高度现在需要为整数。我用谷歌浏览器V24让它工作,我不得不删除高度等引号,所以高度:100不是高度:“100”