2017-09-26 3 views
0

私はAngular2を使用しており、ユーザーがブラウザから「このページをリロードする」をクリックしたことを検出したいと考えています。 このイベントをタイプスクリプトで検出するには、キーボードイベントではありません。TypescriptでChromeリロードマウスを検出

私がこれまで試してみました:

@HostListener('window:keydown', ['$event']) 
onKeyDown(event: MouseEvent) 
{ 
    console.log(event); 
    alert("keydown "+ event.valueOf()); 
} 

@HostListener('window:keypress', ['$event']) 
onKeyPress(event: MouseEvent) { 
    console.log(event); 
    alert("keyPress " + event.x); 
} 

@HostListener('document:click', ['$event']) 
public documentClick(event: MouseEvent): void { 
    console.log(event); 
    alert("doc " + event.y); 

} 

をしかし、ユーザーがクリックするブラウザからリロードしたときにヒットされていません。

アイデア?

答えて

1
window.onbeforeunload = function(e) { 
    //do something useful here 
    return 'oops, user is leaving or reloading the page' //dialog text 
}; 

このコードは、ユーザーがページを離れたりリロードしたりするたびに機能します。 FYI

また、あなたは、イベントとページをリロードし、他のキーの組み合わせを押す「F5」を聴くことができます。これらのイベントのうちpreventDefault()が必要で、代わりに必要な作業をしてください。たとえば、次のコードでは、F5ボタンを使用してページをリフレッシュできなくなります。

document.addEventListener('keydown', function(e) { 
    if ((e.which || e.keyCode) == 116) 
    e.preventDefault(); 
    //do something useful here 
}); 
+0

タイプスクリプト –

関連する問題