2

私は次のコードの選択肢を持っていますが、どちらも満足のいくものではありません。jQuery1.7.2を使用しています

最初のものはFirefoxで完璧ですが、IE9では投稿しますが、データベースに書き込むためのアクションを完了しません。他の人が示唆しているように、私はそれをASYNC falseにしようとしましたが、奇妙なことに、それは何の違いももたらさないようです。他のブラウザでも動作しない場合があります。

2つ目は完了しますが、ページを閉じる確認ダイアログが表示されます。私はそれを止める方法についての提案を見ましたが、私は同じ結果を達成することができませんでした。

誰かが私に代替手段を提供できますか?または、最初のコードでIE9で機能する正しいASYNCの誤ったコードを教えてください。または、確認が閉じるのを正しく防ぐ方法を教えてください。

// Sends the post but does not complete the post in IE9
jQuery(window).unload(function() {
jQuery.post(
    MyAjax.ajaxurl, etc

// works in IE 9 but throws up a confirm dialog box
jQuery(window).bind("beforeunload", function() { ...
jQuery.post(
    MyAjax.ajaxurl, etc
4

1 に答える 1

1

jQuery(window).scrollがトリガーされるたびに投稿しないでください。ユーザーがスクロールを停止したときにのみ投稿します。このような:

function sendQuery() {
    console.log('scrolled');
}

var scrollTimeout = null;
$(window).bind('scroll', function() {
    if (window.scrollTimeout) {
        clearTimeout(window.scrollTimeout);
    }
    window.scrollTimeout = setTimeout(sendQuery, 200);
})

そして実際の例-http://jsfiddle.net/AJnk4/

于 2012-06-28T05:43:16.837 に答える