概要: Chrome 拡張機能を実行しているポップアップ ウィンドウを閉じようとしています。何らかの理由で、Chrome ウィンドウで拡張機能を実行すると、window.close が機能しません。
説明 :
私の GWT アプリケーションは、IE 7 でのみ実行されるレガシー システムと対話する必要があります。解決策として、URL 'chrome-extension://hehijbfgiekmjfkfjpbkbammjbdenadd/iecontainer.html#url=www.legacysystem.com' でポップアップ ウィンドウを開いています。新しいウィンドウのIEタブでレガシーシステムを開くように強制します。従来のシステムでは常に 1 つのウィンドウしか開いていないという要件があるため、ユーザーが別のウィンドウを開こうとすると、開いているウィンドウを閉じる必要があります。
ここに新しいウィンドウを開くための私のコードがあります
<head>
<script>
var WindowDialog = new function() {
this.openedWindows = {};
this.open = function(instanceName, url) {
var handle = window.open(url, instanceName, 'height=500,width=500');
this.openedWindows[instanceName] = handle;
return handle;
};
this.close = function(instanceName) {
if (this.openedWindows[instanceName])
this.openedWindows[instanceName].close();
};
};
function legacySystemWindow(name,url) {
WindowDialog.close(name);
WindowDialog.open(name, url);
}
</script>
</head>
<body>
<input value="Simple popup " type="button" id="1" onclick="legacySystemWindow('gmail','http://gmail.com')" />
<input value="IE Tab popup" type="button" id="2" onclick="legacySystemWindow('IETAB','chrome-extension://hehijbfgiekmjfkfjpbkbammjbdenadd/iecontainer.html#url=www.gmail.com')" />
</body>
IEタブなしでこのコードを試してみると問題はすべて正常に動作しますが、IEタブでこれを試してみると、コードはクロムウィンドウを閉じることができません。
私が知っている限り、chrome.* api は拡張機能を使用してこのコードを実行していないため、適用できません。
どんなアイデアや解決策も大歓迎です。