簡體   English   中英

JavaScript正文onunload無法正常工作

[英]JavaScript body onunload not working

嗨,我有以下代碼:

function redirect(){
     window.location.href='logged_out_chat.php';
}

...在我的標題和以下正文標簽中:

<body onunload="javascript:redirect();">

...當我在一台筆記本電腦上嘗試此操作時,它會按預期進行重定向(當您單擊任何鏈接時),但是在我的另一台筆記本電腦,台式機和筆記本電腦上,它將忽略重定向並轉到您單擊的任何鏈接。 我已經花了幾個小時...都擁有相同的瀏覽器。 我想知道是否有另一種方法可以在用戶單擊鏈接等時重定向用戶。

您期望會發生什么?

當我在瀏覽器中關閉頁面時, 會重定向到我喜歡的頁面嗎?

這又提高了安全性和用戶控制能力。 當我關閉頁面時,您應該不會干擾它。

士氣是不要依靠onunload來做任何不平凡的事情。

窗口卸載后,它將停止處理所有內容,這意味着ajax請求,待處理的下載等,甚至凍結了gif動畫。 有些瀏覽器支持onbeforeunload ,但我完全同意@Raynos,您不能指望該事件,因此使用它不是一個好的設計決定。

您無法劫持onunload並重定向用戶。 這將阻止用戶關閉其瀏覽器,刷新頁面或手動導航到另一個站點。 如果這是您要嘗試的操作,那么您很不幸。 所有onunload都很好,是詢問用戶是否確定要離開頁面。

但是,如果您試圖使單擊的鏈接轉到其他位置,那很容易。 永久更改鏈接:

myLink.href = 'logged_out_chat.php';

如果要臨時更改鏈接,請添加一個單擊處理程序,以后可以將其刪除:

function goToLoggedOutChat(e)
{
    e.preventDefault && e.preventDefault();
    e.returnValue = false;
    location.href = 'logged_out_chat.php';
}
mylink.onclick = goToLoggedOutChat;

要重新啟用鏈接:

mylink.onclick = null;

要對頁面上的每個鏈接執行此操作:

for (var i=0; i<document.links.length; i++)
{
    document.links[i].onclick = goToLoggedOutChat;
}

暫無
暫無

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

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