0

私はこのコードを使用しています

var exitPop = false;
var nonFire = false;
window.onbeforeunload = function () {
    if(!exitPop){
        exitPop=true;
        return 'Wait! YOU ARE TODAYS WINNER!';
    }
};

setInterval(function(){
    if(exitPop && !nonFire){
        nonFire = true;
        window.location.href = 'http://google.com';
    }
}, 200);

しかし、ページ上のHTMLリダイレクトボタンをクリックすると実行されます..誰かがブラウザを閉じた場合にのみ実行し、すべてのブラウザをサポートする必要があります。

サイト内の 1 つのリンクだけにこれを追加する必要があります。どうすれば id を実行できますか? つまり、リダイレクトにこのコードを使用しています

<script type="text/javascript"> 

window.fbAsyncInit = function() {
    FB.Event.subscribe('comment.create',
    function (response) {
        window.location = "http://domain.com";
    });
    FB.Event.subscribe('comments.remove',
    function (response) {
        window.location = "http://domain.com";
    });   
};

(function() {
    var e = document.createElement('script');
    e.async = true;
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
}());
//]]>
</script>

だから私はこれのために終了機能が実行されないようにしたい..だからどうやってこれを統合するのですか

4

2 に答える 2

0

私はそれをテストしていませんが、ページ上のすべてのリンクに「クリック」イベントを添付できるはずです。これにより、次のようなグローバル変数が設定されます。

linkClicked = true;

その後、 unload イベントでその変数を確認できます

if (!linkClicked) // variable is false so they must not have clicked on a link
{
    // Some annoying message here
}

免責事項: これはほぼ疑似コードであり、コピーと貼り付けのソリューションではありません。

于 2012-06-18T13:44:41.940 に答える
0

window.onbeforeunloadリンク、戻る/進むボタン、終了ボタンなどを区別しません。ページを離れた方法に関係なく、ページを離れたときに発生します。

于 2012-06-18T13:46:57.597 に答える