防止使用JavaScript導航網頁


Answers

與此處介紹的其他方法不同,這些代碼不會導致瀏覽器顯示警告,詢問用戶是否要離開; 相反,它在瀏覽器有機會從內存中卸載它之前,利用DOM的偶數本質重定向回當前頁面(從而取消導航)。

由於它通過直接短路導航工作,因此無法用於阻止頁面關閉; 但是,它可以用來禁用幀清除。

(function () {
    var location = window.document.location;

    var preventNavigation = function () {
        var originalHashValue = location.hash;

        window.setTimeout(function () {
            location.hash = 'preventNavigation' + ~~ (9999 * Math.random());
            location.hash = originalHashValue;
        }, 0);
    };

    window.addEventListener('beforeunload', preventNavigation, false);
    window.addEventListener('unload', preventNavigation, false);
})();

免責聲明:你永遠不應該這樣做。 如果頁面上有破解代碼,請尊重作者的意願。

Question

如何防止使用JavaScript瀏覽網頁?







在Ayman的例子中,通過返回false,可以防止瀏覽器窗口/選項卡關閉。

window.onunload = function () {
  alert('You are trying to leave.');
  return false;
}



相當於jQuery 1.11中接受的答案:

$(window).on("beforeunload", function () {
    return "Please don't leave me!";
});

JSFiddle示例

altCognito的回答使用了unload事件,這對於JavaScript來放棄導航來說太遲了。