6

これが可能かどうかはわかりませんが、次のフィドルのような AJAX フォームがあります。

http://jsfiddle.net/nicorellius/GfeEf/

私のウェブサイトでは、問題なく動作しています。JavaScript を使用してフォームで簡単な検証を行いますが、ユーザーが JavaScript を通過すると、キャンペーン モニターWeb ページがユーザーに表示されます。

ユーザーが正常にサブスクライブした場合、ユーザーがクリックして戻るか、CM の戻るリンクを使用すると、fancyBox にはデータが入力されたままになります。スクリプトの作成方法に基づいて、送信後にスクリプトを閉じる必要があります。

これは、Linux および Windows での Firefox の動作です。Chrome は実際にページをクリアし、fancyBox フォームを削除します。AJAX セクションは次のとおりです。

$.ajax({
    type       :  "POST",
    cache      :  false,
    url        :  "http://<comapny_name>.createsend.com/a/b/c/abcdef/",
    data       :  $(this).serializeArray(),
    //  I've tried both of these commented out pieces to no avail.
    //beforeSend :  function() {  
                      //$.fancybox.close(true);
                  //},
    //success    :  function(data) {
                      //$.fancybox.close(true);
                  //}
});

したがって、追加しても:

success : function() {
              $.fancybox.close(true);
          }

AJAXスクリプトに、送信後に閉じることができません。

編集

また、この現象は Firefox、Safari、Opera で発生するようです。Chrome は期待どおりに動作します (たとえば、戻るリンクをクリックすると、新しいページがリロードされます)。CMページはjavascript:history.go(-1)私を送り返すために使用しています。

4

2 に答える 2

2

これに対する答えのコードが必要なようです: How to close fancybox after Ajax Submit?

(抜粋&修正部分はこちら)

var fancyboxProxy = $.fancybox; //declared before $.ajax

//and then modify your success to:
success : function() {
          fancyboxProxy.close();
      }

イベントを受け取っている場合は、ファンシーボックスを非表示にするために使用しているコードに特に問題があることがわかりますalert()conosle.log()

于 2013-02-26T14:08:37.347 に答える
2

キャンペーン モニターについてはわかりませんが、ドキュメントの読み込み時にファンシー ボックスを強制的に閉じてみませんか?

$(document).ready(function(){
  $.fancybox.close(true);
}
于 2013-02-26T00:02:03.143 に答える