1

概要: 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 は拡張機能を使用してこのコードを実行していないため、適用できません。

どんなアイデアや解決策も大歓迎です。

4

1 に答える 1