2012-07-28 80 views
0

所以我在努力创建需要由我的网站...标准JavaScript触发弹出式窗口内工作的延伸......谷歌浏览器扩展程序在用Javascript打开的弹出窗口中工作吗?

function openwin(){ 
    window.open('http://stackoverflow.com','myname','height=100,width=100'); 
} 

现在我需要扩展到内加载那个窗户。假设扩展的目的是提醒消息,当我加载该窗口时,background.js应该触发并执行该操作,对吗?

+0

您可以试试吗? :) – 2012-07-28 08:09:15

+0

没有为我工作... – iLoch 2012-07-28 08:13:02

回答

2

chrome.windows.create(object createData, function callback)

创建(打开)所提供的任何可选的大小,位置或默认网址一个新的浏览器。

来源:http://code.google.com/chrome/extensions/windows.html#method-create

试试这个例子:

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); 
}); 
+0

感谢您的回答拉里。我更愿意将代码保留在网站的范围内,并让扩展程序进行修改。这就是说,我确实想出了一个解决方案。请确保您已应用标签权限,以及弹出窗口可能访问的任何网站。从那里开始,监听正在创建的新窗口,然后测试每个窗口,看看参数是否匹配(例如,window.name就是您要查找的内容)。 – iLoch 2012-07-28 09:11:15

+0

在写这篇文章的时候,高度现在需要整数。即时通讯使用googlechrome v24 – fedmich 2013-02-21 00:39:30

+0

为了得到它的工作,我不得不删除高度上的引号等所以高度:100不是高度:“100” – 2017-07-02 12:30:41

0

这里是通过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); 
    }); 
}); 
相关问题