Chrome(IE - OS Xではテストできません)でfocus()
(jquery-uiはデフォルトで最初のtabbable要素となります)を呼び出して、ボックスのフォーカスを合わせ、ボックス内のテキストを選択します。 jquery.dialog.ui.jsから撮影
:
// set focus to the first tabbable element in the content area or the first button
// if there are no tabbable elements, set focus on the dialog itself
$(self.element.find(':tabbable').get().concat(
uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(
uiDialog.get()))).eq(0).focus();
Firefoxは、他の一方で、フォーカスを呼び出すときにのみ、ボックス内にカーソルを置いているようです。したがって、あなたがやろうとしていることを達成するためには、ダイアログが作成された後で暗黙的にcall selectを呼び出す必要があります。
(実行をクリックするのではなく)タイマーを再読み込みすると、その例が毎回動作することがわかります。私は、jsFiddleは実際にはここ(おそらくハッシュチェンジイベント、または「実行」を押した後のペインの1つのフォーカスイベント)であると思う。深く掘り下げていない。
EDIT :(申し訳ありませんが、遅れています)「問題」の根本的な原因はFirefoxだと思われます。これが設計された動作かどうかはわかりませんが、私の見るところではFirefoxのように見えますのテキストは同じページの異なるコンテンツペイン内の2つの異なる入力要素で同時に選択できません。これはChrome(そして、IE9と思われます)には影響しないようです。
2つのiframeが並んでいるローカルの簡単な例を作成しました(左右に呼びましょう)。左にはテキストエリアがあり、右にjquery-uiダイアログがあります。これはあなたが投稿したバイブルと似ています。あなたがこれらをつなぎ合わせるとFirefoxで結果をチェックアウトした場合
<script type="text/javascript">
setTimeout(function() {
$('textarea').focus();
}, 1000);
</script>
は、あなたが入力が集中し、選択されていることに気づくでしょう:
<script type="text/javascript">
$('<div><input type="text" value="val" /></div>').dialog();
$('input').select();
</script>
左には、次のコードを持っている:右、次のコードを持っています左のテキストエリアにフォーカスが置かれるまで私はこれに近いものがjsFiddleで起こっていると思う。
+1よく書かれた回答のため、これは修正されていますか? – qwertymk
私はこれ以上見る機会がありませんでした。私はそれがFirefoxのバグかもしれないと言います。あなたはそれについて何かを発見したか、解決策を見つけることに終わりましたか? – chrisn
何も決定的なものはありません。私はこの1つのタオルを投げつけて、さまざまなブラウザが異なるux – qwertymk