从chrome扩展关闭弹出窗口

时间:2014-10-27 07:19:07

标签: 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 ,'height': 700, 'left': 600, 'top': 800 });

});

在相同的javascript文件函数中关闭弹出窗口

window.onbeforeunload = function () {             
        Chrome.windows.remove(trackchildwindow.id, function(){});  
    };

然而,它无法关闭弹出窗口。我也试过使用trackchildwindow.close();。不工作。任何帮助将不胜感激 ............................编辑.................... < / p>

我找到了答案

Buttonclose= function close(){
    open(location, '_self').close();
}

就是这样。为了从我的主窗口保留记录,我正在使用

chrome.extension.sendMessage

1 个答案:

答案 0 :(得分:1)

trackchildwindow = chrome.windows.create(options);

无效,因为该功能是异步的,并且不会返回任何内容(与大多数Chrome API一样)

你需要处理它in a callback

chrome.windows.create(options, function(win) {
  trackchildwindow = win;
  // Note, this is asynchronous..
});
// ..and as such trackchildwindow is not defined here yet

由于代码是异步的,因此在使用该值时需要小心。