1
CkEditorのコンテンツ領域にテキスト入力フィールドをどのようにフォーカスしますか? $(inputselector).focus()
を呼び出すことは機能していないようです。カーソルは元の位置にとどまります。CkEditorの入力フォーカス
CkEditorのコンテンツ領域にテキスト入力フィールドをどのようにフォーカスしますか? $(inputselector).focus()
を呼び出すことは機能していないようです。カーソルは元の位置にとどまります。CkEditorの入力フォーカス
Ctrl+Shift+I
を打つ取得以下のすべての行をコピーして貼り付けてください。Enter
var tgbody = $('iframe')[0].contentDocument.getElementsByTagName('body')[0];
var target = $(tgbody).find('> *')[0];
var wildin = $("<input type='text' name='cfld' id='cfld' value='some text' />");
$(tgbody).removeAttr('contenteditable');
$($('iframe')[0].contentDocument.getElementsByTagName('body')[0]).removeAttr('contenteditable');
wildin.appendTo(target);
/// O.o 0.º
wildin.focus();
ヒットCtrl+Shift+I
を再度入力してください。コンテンツエリア内に新しい入力があり、その中にカーソルがあることに気づくでしょう。
この方法はchromeでは有効ですがfirefoxでは機能しません。私はfirefoxでテストしていますので、それは動作していない理由です。 –
私にはわかりませんが、CKEditorにはこれらの入力を含むiframeがあると思います。 '$(inputselector)'が要素のコレクションを返すかどうか確認し、そうであれば、イベントの取り消しなどを回避する必要があります。 –
入力でトリガされるイベントを取得しますが、イベントを明示的にトリガしても、要素のフォーカスを取得することはできません。私はfocus()がこの場合実際にカーソルを移動しないと考えています。 –
これはブラウザの動作です。 'contenteditable'属性を取り出して動作させる必要があります。 '$(inputselector).closest( 'body')。removeAttr( 'contenteditable');'または 'contenteditable =" true "'がどこにあっても。 –