0

一部のコンテンツ(単純なWebフォーム)をfancybox経由で(ドメインから)iframeにロードします。そして、このiframeフォームの1つの入力に値を追加したいと思います。

これを試して:

$x("a.load_html_i").fancybox({
'type'              :'iframe',
'padding'           : 20,
'width'             : 690,
'height'            : 550,
'onComplete'        : function() {
$x('#fancybox-frame input[name=input_text_0]').val($x(this).attr('title'));
}
});

ここで、#fancybox-frameはiframeのIDです。

この:

...
$x("#fancybox-frame").contents().find("input[name=input_text_0]").val($x(this).attr('title'));
...

しかし、それは機能しません。

4

2 に答える 2

0

'this'キーワードを使用する代わりに、クラス名でアンカーを参照します。「これ」はfancyboxのインスタンス化を参照していると思います。

$x("a.load_html_i").fancybox({
'type'              :'iframe',
'padding'           : 20,
'width'             : 690,
'height'            : 550,
'onComplete'        : function() {
//cache the anchor
var anchor = $x(this);
//trigger the following function in 0.5s (should be long enough)
   setTimeout(function(){
      $x('#fancybox-frame input[name=input_text_0]').val(anchor.attr('title'));
   }, 500);
}
});
于 2012-04-08T17:13:42.827 に答える
0

問題が見つかりました:iframeが読み込まれる前にjqueryが実行されます。それを改善する方法は?

$x("iframe#fancybox-frame").ready(function(){
                $x("iframe#fancybox-frame").contents().find("input[name=input_text_0]").val('hh');
            });

準備ができていない追加

于 2012-04-08T17:58:37.877 に答える