2017-01-19 9 views
1

私はそれについて調査し、読んでいて、どのようにそれをやるべきかを見つけることができませんでした。クローム拡張機能のオープナーからイベントを閉じるにはどうすればいいですか?

私は、だから私は、ポップアップを作成し、以下のコード(それは働いていない)のように閉じたときに聴きたい参照のドキュメントhere

を取っChromeの拡張機能を開発しています。

chrome.windows.create({ 
    url: "http://www.google.com", 
    type: "popup", 
    width: 640, 
    height: 800 
}, function(w) { 
    w.onunload = function() { 
     console.log("hey"); 
    }; 
}); 

どのようにすればいいのですか?

+2

を参照してください。 chrome.windows APIのドキュメント:windowパラメータはDOMウィンドウではありません。 – wOxxOm

+0

が正しいです。 – locropulenton

答えて

1

イベントを受け取りますが、私はポップアップIDを特定するより良い方法を見つけることができませんでしたが、クロージャの範囲。

chrome.windows.getCurrent(function() { 
    chrome.windows.create({ 
     url: "http://www.google.com", 
     type: "popup", 
     width: 640, 
     height: 800 
    }, function(w) { 
     chrome.windows.onRemoved.addListener(function (wIndex) { 
      if (wIndex === w.id) { 
       console.log("hey"); 
      } 
     }); 
    }); 
}); 
+2

ウィンドウを一度しか閉じることができない場合は、ウィンドウのクローズを検出したときにリスナーを削除する必要があります。 – Makyen

1

あなたは毎回リスナーを追加および削除する必要はありませんので、ポップアップウィンドウIDを追跡し、chrome.windows.onRemovedリスナーにその変数を確認するために変数を使用することができます。

var myPopupId; 

chrome.windows.create({ 
    url: "http://www.google.com", 
    type: "popup", 
    width: 640, 
    height: 800 
    }, function(w) { 
     myPopupId = w.id; 
    } 
); 

chrome.windows.onRemoved.addListener(function(windowId){ 
    if (windowId == myPopupId){ 
     console.log("hey"); 
    } 
}); 
関連する問題