質問

私はjqueryを使用しています ColorBox ショッピングカートアイテムを表示します。ユーザーがiframe(colorboxで開く)の数量を入力し、送信ボタンをクリックすると、iframeを閉じてメインウィンドウ(親)を自動的に更新したいと思います。

iframeに関するデータを送信した後、2つのことが欲しいということです。

  1. iframeは自動的に閉じます。
  2. 親ウィンドウが自動的に更新されます。

私を助けてください。

役に立ちましたか?

解決

iframeを開いている間、親ウィンドウでこれを使用します。

$(document).ready(function(){
    $(".chpic").colorbox({width:"80%", height:"80%", iframe:true, 
        onClosed:function(){ location.reload(true); } });
});

そして、これはiframeページ内のiframeを閉じるために:

parent.$.fn.colorbox.close();

他のヒント

フォームがフレーム1で送信された後、次のJavaScriptを使用して親フレームをリロードできます。

window.parent.location.reload(true);
<form target="_top">

jquery.colorbox.jsを開くこれらの2つのコードを見つけます:

$close.click(function () {
  publicMethod.close(); 
});


$overlay.click(function () {
  if (settings.overlayClose) {
    publicMethod.close();
  }
});

これらに置き換えます - 「window.location.reload();」の追加に注意してください。

$close.click(function () {
  publicMethod.close();
  window.location.reload();         
});


$overlay.click(function () {
  if (settings.overlayClose) {
    publicMethod.close();
    window.location.reload();
  }
});

見てみましょうhttp://colorpowered.com/colorbox/core/example1/index.html

具体的には、「アラート付きの例」を見てください

このように、閉じるボタンをクリックするだけでシミュレートするだけです。

$("#cboxClose").click();

このようなフォームタグを与える:

<form target="_top">

その後、送信後:

response.redirect("your form")

Drupal 7を使用している場合、次の代替案を使用する必要がある場合があります。

parent.jQuery.colorbox.close();

D7では、$ .fnはjQueryオブジェクトに置き換えられているようです。

これを返すメニューコールバックを単に設定するだけです。

return <<<EOF
<script type="text/javascript">
  <!--//--><![CDATA[//><!--
  parent.jQuery.colorbox.close();
  //--><!]]>
</script>
EOF;

私のためにはうまくいくようでした:)

現在のページにとどまりたい場合:

  1. ColorBoxが適用されている親ページに次のコードを書きます。

    $(document).ready(function(){
    
     $(".tu_iframe_800x600").colorbox({width:"80%", height:"100%", iframe:false 
    
      });
    });
    
  2. ColorBoxを閉じたい現在のページの次のコード parent.$.fn.colorbox.close();

注:交換してください .tu_iframe_800x600 ColorBoxが呼ばれるHTMLクラスで...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top