簡體   English   中英

Chrome-單擊mailto:鏈接會關閉websocket連接

[英]Chrome - clicking mailto: links closes websocket connection

我正在使用最新的穩定版Chrome,版本41。 我在頁面上有一個開放的websocket連接,並有一個指向電子郵件地址(mailto:***)的鏈接。 當用戶單擊電子郵件地址時,Websocket連接將關閉。 Firefox沒有這個問題。 你知道如何解決這個問題嗎?

謝謝

無論出於何種原因,當您單擊同一頁面上的mailto:鏈接時,Chrome和Firefox都會殺死所有打開的websocket(以及可能的任何活動XHR連接)。

因此,為了解決這個問題,您可以劫持點擊並調用window.open(hrefMailtoTarget) 這將使您的連接保持打開狀態並啟動用戶的電子郵件客戶端,但是您會注意到您現在擁有一個新的空白瀏覽器頁面,因此可以嘗試使用window.open(hrefMailtoTarget).close() ,它會立即關閉新打開的頁面。瀏覽器頁面...,但不會打開電子郵件客戶端。

因此,要使用jQuery在全球范圍內修復所有電子郵件鏈接,請執行以下操作:

$(document).on('click', 'a[href^="mailto:"]', function (e) {
    e.preventDefault();
    var emailWindow = window.open($(e.currentTarget).attr('href'));

    setTimeout(function () {
        emailWindow.close();
    }, 500); // Is half a second long enough?
             // I don't know.
             // I'd set it as long as you can stand.

    return false;
});

暫無
暫無

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

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