ウィンドウを閉じてイベントをトリガします.

1368 ワード

ブラウザのウィンドウを閉じてwindow.close()を使うことができますが、これに対応するイベントはありません.ページのロードもOloadイベントを使って傍受します.
ワンロードとunbeforeunloadイベントはすべてページの更新またはクローズの時に実行されます.
この二つの事件の違い:
  1.onunloadイベントはすでにサーバからデータを読み取り、現在のページに置き換える前に実行されました.
     Obeforeunloadイベントはサーバにデータを読み取りに行きますが、まだページデータが読み込まれていない時に実行されます.したがって、Onbeforeunloadイベントはワンロードイベントより優先して実行されます.ワンロードイベントの実行を阻止できます.
  2.onunloadイベントは、ウィンドウが開いても、リフレッシュしても、閉じても実行されます.
     Obeforeunloadイベントは新しいウィンドウが開かれた時には実行されません.リフレッシュとクローズの時だけ実行されます.
//      
var childWindow = window.open(getContextPath()+"/js/d3tree/components/TemplateTransform/TemplateTransformNew.html");
//      ,          
childWindow.onbeforeunload = function(event){
	var operatorObjStr = childWindow.sessionStorage.operatorObj;
	var currentOperatorObj = JSON.parse(operatorObjStr);
	//       
	operatorObj.components = currentOperatorObj.components;
	operatorObj.description = currentOperatorObj.description;
	changeD3TreeNodeText();
}
インターネットで多くの人を見てから、IEの下でウィンドウを閉じると、ヒントバーが表示されます.
window.openr=null;
クローズやリフレッシュの判断をする人もいます.
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)  
{  
	alert(    );
}else{
	alert(    );
}
しかし、私がテストしたところ、イベント中にはクリントXなどの属性が得られませんでした.これらの属性はウィンドウクローズイベントには存在しませんでした.原理は正しいですが、マウスのクリック位置によってウィンドウが閉じられているかどうかを判断します.でも理想ではないです.