2017-01-06 6 views
2

私はセッションストレージでウィンドウを閉じようとしていますが、その動作していませんか?私にとってユーザーセッションが終了している間は、すべてのウィンドウを閉じる必要があります。

私は別の& &異なるモジュールで新しいウィンドウを開くので、私は私が作成した

<html> 
 
<body> 
 

 
<button onclick="openWin()">Open "myWindow"</button> 
 
<button onclick="closeWin()">Close "myWindow"</button> 
 

 
<script> 
 
var my1; 
 

 

 
function openWin() { 
 
my1 = window.open("", "myWindow", "width=200,height=100"); 
 
alert(my1) 
 
sessionStorage.setItem('aa',my1); 
 

 
} 
 

 
function closeWin() { 
 
var retrievedObject = sessionStorage.getItem('aa'); 
 
retrievedObject.close(); 
 
} 
 
</script> 
 

 
</body> 
 
</html>

+0

セッション記憶域が文字列を保持しているため、参照をウィンドウに保存する方法がありません... – epascarello

+0

しかし、ログを返すウィンドウオブジェクトをどのように@ epascarello – Arun

答えて

0

自分のアプリケーションのためのグローバルセッションストレージを使用しているため、「ヴァール」を維持カントあなたのためのプランナーの作業バージョンhere

ただし、コードがタブ内で実行されていて閉じている場合は、コードが実行されずに他のウィンドウが閉じられ、ユーザーはすべて閉じなければならないという点を考慮する必要があります。

ところでのコードはsandboxedであるため、コードは機能しません。そのMY1がウィンドウのインスタンスへの参照ですので、あなたがのsessionStorageに入れたときに、それが参照を失うことになる、

アップデート(あなたはその中にセッションストレージにアクセスすることはできません)。だから私の心に来るのは、それをローカルに保存することだけです。更新されたプランナーを見てください。

+0

あなたのplnkrはウィンドウを閉じません... – epascarello

+0

あなた '絶対に正しい。ウィンドウオブジェクトのインスタンスを格納しているので、何らかの理由で参照が失われます。更新を見て@epascarello – Yaser

+0

@Yaser私は知っているが、私の場合、私はすべての新しいウィンドウを閉じる必要があるので、どのようにすることができますか、グローバル変数を使って何もできません – Arun

関連する問題