Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从chrome扩展关闭弹出窗口_Javascript_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript 从chrome扩展关闭弹出窗口

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

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 ,'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