簡體   English   中英

瀏覽器關閉事件不是頁面刷新/重新加載事件

[英]browser close event not page refresh/reload event

我只需要檢測瀏覽器關閉事件而不是頁面刷新/重新加載事件

我試過這個,但在這兩種情況下它都可以工作

    $(window).bind('beforeunload',function(){

        });

 window.onbeforeunload = function (e) {

        }
$(window).unload(function() {  

});​

沒有捕獲瀏覽器Close Event特定方法。

您只能在unload當前頁面時捕獲。

當您嘗試refreshreload頁面時,這也有效。

您可以嘗試設置一些值來檢查頁面是否已加載完畢,然后才觸發 onbeforeunload。

我正在使用類似的東西:

window.onbeforeunload = function (e) {
            if(is_form_dirty())
                return '<@msg "elections.general.modal.confirm.changes.text" />';
        }

設置應該基於“會話” - 所以如果可能的話,使用 localstorage 或只是普通的舊 cookie

沒有用於重新加載或關閉的單獨事件。 瀏覽器為任何一種情況觸發相同的 bodyunload 事件。

如果你必須檢測到關閉,你可以通過檢查 window.event.clientX 和 window.event.clientY 的坐標來完成。 但這是您最不想做的事情。

如果您只使用 IE,您可以實現 BHO,它可能會顯式檢測瀏覽器關閉。

我就是這樣做的;

    <script>

var mie = (navigator.appName == "Microsoft Internet Explorer") ? true : false;

if (!mie) {
     document.captureEvents(Event.MOUSEMOVE);
     document.captureEvents(Event.MOUSEDOWN);
}

document.onmousemove = function (e) {mousePos(e);};
document.onmousedown = function (e) {mouseClicked();};

var mouseClick;
var keyClicked;

var mouseX = 0;
var mouseY = 0;

function mousePos (e) {
    if (!mie) {
        mouseX = e.pageX; 
        mouseY = e.pageY;
    }
    else {
        mouseX = event.clientX + document.body.scrollLeft;
        mouseY = event.clientY + document.body.scrollTop;
    }

    document.show.mouseXField.value = mouseX;
    document.show.mouseYField.value = mouseY;

    return true;
}

window.onbeforeunload = function (e)
        {
            e = e || window.event;
            var y = e.pageY || e.clientY;
            if (y <= 0){    

            }
            else {
                if(document.show.mouseYField.value < 30) {
                    return 'Do you want to exit?';
                }
            }
          }
</script>

<form name ="show" style="display:none">
        <input type="text" name="mouseXField" value="0" size="6">Mouse X Position<br>
        <input type="text" name="mouseYField" value="0" size="6">Mouse Y Position<br>
</form>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM