3

クロムでmailtoリンクをクリックしたときにonbeforeunloadが呼び出されないようにする方法はありますか。FF、Safari、IEでは問題なく動作しています。

<html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">
        google.load("jquery", "1.3.2");
    </script>

    <script type="text/javascript">
        $(document).ready(function(){
            window.onbeforeunload = confirmExit;
        });

        function confirmExit() {
            return "Are you sure?";
        }
    </script>
</head>
<body>
    <a href="mailto:someone@somewhere.com?subject=test mail&body=Hello%20World">Mail Link</a>
</body>
</html>
4

2 に答える 2

5

回避策はどうですか?

$(document).ready(function(){
    mailtoClicked = false;
    window.onbeforeunload = confirmExit;
    //Test if browser is Chrome
    if (/chrom(e|ium)/.test(navigator.userAgent.toLowerCase())) {
        $('a[href^=mailto]').click(function() {mailtoClicked = true;});
    }
});

function confirmExit() {
    if (!mailtoClicked) {
        return "Are you sure?";
    } else {
        mailtoClicked = false;
    }
}

デモ

于 2009-11-17T14:22:41.960 に答える