Javascript 从chrome扩展关闭弹出窗口
Java脚本函数tom从扩展打开弹出窗口Javascript 从chrome扩展关闭弹出窗口,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,Java脚本函数tom从扩展打开弹出窗口 var trackchildwindow; $('#done').submit(function(){ trackchildwindow=chrome.windows.create({url: 'chrome-extension://'+<extensionid>+'/src/browser_action/ChildPage.html', type: 'popup' , focused: true, 'width': 900 ,'h
var trackchildwindow;
$('#done').submit(function(){
trackchildwindow=chrome.windows.create({url: 'chrome-extension://'+<extensionid>+'/src/browser_action/ChildPage.html', type: 'popup' , focused: true, 'width': 900 ,'height': 700, 'left': 600, 'top': 800 });
但是,它无法关闭弹出窗口。我尝试过使用trackchildwindow.close()代码>也是。不工作。任何帮助都将不胜感激
编辑
我找到了答案
Buttonclose= function close(){
open(location, '_self').close();
}
就是这样。为了从我的主窗口保存记录,我使用
chrome.extension.sendMessage
trackchildwindow = chrome.windows.create(options);
不工作,因为该函数是异步的,不返回任何内容(就像大多数ChromeAPI一样)
你需要处理它:
因为代码是异步的,所以在使用值时需要小心。嘿,Xan,问题不在于打开弹出窗口,而在于关闭它。我想关闭在代码中创建的父窗口中的弹出子窗口,trackchildwindow==undefined
,难怪您不能关闭它。你在调试这个吗?你看到错误了吗?没有错误。根据您的建议,我添加了一个回调函数,因此现在代码变为。chrome.windows.create({url:'chrome extension://'++'/src/browser_action/ChildPage.html',键入:'popup',焦点:true,'width':900,'height':700,'left':600,'top':800},函数(win){trackchildwindow=win;控制台.log(“跟踪-->”+trackchildwindow);})。但是,在添加回调功能后,弹出窗口根本不会打开,这仍然是不确定的。控制台上没有错误。请将答案作为答案发布,而不是将其添加到问题中。你甚至可以接受。
trackchildwindow = chrome.windows.create(options);
chrome.windows.create(options, function(win) {
trackchildwindow = win;
// Note, this is asynchronous..
});
// ..and as such trackchildwindow is not defined here yet