2

ページの読み込み/開始後に入力テキストに注目したい。これは私のフォームです:

<form method="post" action="tags">
    <input type="hidden" name="id" id="id" value="getId()" />
    <input type="text" name="tag" id="tag" autofocus="autofocus"/>
    <input type="submit" value="Add" name="add" />
</form>

jQuery を試しましたが、Firefox では動作しません。

jQuery(document).ready(function(){
  jQuery("#tag").focus();
});

これは、Fancybox を使用して Iframe として開くウィンドウです。これは私の Fancybox 関数です:

jQuery(".fancybox").fancybox({
    type: "iframe",
    width: 640,
    height: 320,
    afterClose : function() {
        location.reload();
        return;
    },
    afterShow: function() {
        jQuery('.fancybox-iframe').find('#tag').focus();
    }
});

これに対する回避策はありますか?

ありがとうございました!

4

3 に答える 3

1

これを試して。

 //change this selector:
$('yourselector').fancybox({
    onComplete: function() {
        $('#fancybox-frame').contents().find('#tag').focus();
    }
});

APIリファレンス

コンテンツをにロードしているためiframe、jQueryは標準のコンテンツを検索しません$(selector).contents().find()メソッドはしかし。

#fancybox-framefancyboxのデフォルトIDですiframeonCompleteコンテンツが読み込まれると、コールバックが発生します。


いくつかのテストの後、onCompleteハンドラーの起動が早すぎるようです。タイムアウトを使用することは醜い解決策であるため、ロードされたページを適応させることはより良いオプションであるはずです:

<form method="post" action="tags">
    <input type="hidden" name="id" id="id" value="getId()" />
    <input type="text" name="tag" id="tag" />
    <input type="submit" value="Add" name="add" />
</form>
<script>
document.getElementById('tag').focus();
</script>

スクリプトがiframeに読み込まれると、スクリプトは正常に実行され、入力要素を適切にフォーカスします。

于 2012-11-06T00:14:49.193 に答える
0

存在しない ID「タグ」について言及しました

<form method="post" action="tags">
    <input type="hidden" name="id" value="getId()" />
    <input type="text" name="tag" id = "tag" autofocus="autofocus"/>
    <input type="submit" value="Add" name="add" />
</form>
于 2012-11-05T23:59:15.483 に答える
0

私の回答では contents() を省略しました。Fancybox v2.x では、次のようになります。

jQuery(".fancybox").fancybox({
type: "iframe",
width: 640,
height: 320,
afterClose : function() {
    location.reload();
    return;
},
afterShow: function() {
    jQuery('.fancybox-iframe').contents().find('#tag').focus()
}
});

JFKとファブリシオ・マットに感謝します。

于 2012-11-06T17:25:33.040 に答える