2012-03-22 5 views
1

ユーザーが自分のウェブサイトの別のページを指し示すハイパーリンクをクリックするとUIをブロックする必要があります。 ajaxStartとajaxStopを使用してすべてのjquery ajaxリクエストを追跡する方法があり、ブラウザがサーバーからの応答を待っているときにこれらのメソッドを使用してUIをブロックできます。 しかし、すべての主要なブラウザ(firefox、Chrome、IE)からのすべての送信ページ要求を傍受する方法はありますか?jQueryを使用してブラウザからのすべての送信URLリクエストを追跡する

+0

私は申し訳ありませんが、私はちょうどあなたがこれをしたいという事実のためにあなたを否決しなければなりません。 .. – Endophage

+0

ロブWによると、私は同意します。私は、データが消失するのを防ぐためでなければ、閉鎖前にUIをブロックすることが反社会的だと思う。ユーザーを煩わすだけであれば、ポップアップやポップアンダーと同じように時間を浪費することになります。すべてのページで「行動を促す」ブロックを使用して、ユーザーに電話をかけたり、連絡を取ったり、何か無料で入手したりすることをお勧めしますか? – halfer

+0

(なぜあなたがこれをしたいのかを概説すれば、ここで読者を助けるかもしれません)上記のコメントを暗示しているように、Webベースのエディタはこの方法を使用してデータを失うのを防ぎます。両方Wordpressのそれを行う)。 – halfer

答えて

0

window.onbeforeunload = function() { 
    blockUI(); 
}; 
5

<a href>すべての要素のクリックを傍受するデリゲートイベントハンドラをバインドして、ウェブサイトのページ(http://jsfiddle.net/sNDf3/2/)に移動できます。

​$("body").on("click", "a[href]", function(e) { 
    // <a> elements have a .host property which represents the host of the href 
    // so you can block internal links only 
    if(this.host === "jsfiddle.net" && !confirm("Sure?")) { 
     e.preventDefault(); 
    } 
});​​​​​​​​​​​​​​​ 

あなたが(永続的な親への実際のハンドラを結合)による委任に後からリンクを追加する場合でも、これは動作します。私は、このようにそれをしなかった - - それはどのように行うことができるか知りたい人のための

+0

体のクリックイベントをバインドする理由は、アンカーだけではないのですか? – Jashwant

+0

@ジャシュワント:[答えの最後の段落を挿入する]ためです。 – pimvdb

+0

あなたのSOの点を見て、私は最後の段落が私の質問に答えていると思った。しかし、私は最後の段落を取得しませんでした。だから私のばかな話ですが、簡単な言葉で説明してください。 – Jashwant

関連する問題