私は、ハックなどについて話している他の答えを読んだ後に質問を誤読しているように感じますが、IE8とFirefox 3.5.2でうまく動作する簡単なサンプルをまとめました。 ID =「テスト」でその入力要素と仮定すると、次の関数呼び出しONFOCUS:Firefoxので
function TestFocus()
{
var Test = document.getElementById("Test");
if (document.selection)
{
var SEnd = document.selection.createRange();
SEnd.moveStart("character", Test.value.length);
SEnd.select();
}
else if (Test.setSelectionRange)
{
Test.setSelectionRange(Test.value.length, Test.value.length);
//- Firefox work around, insert a character then delete it
var CEvent = document.createEvent("KeyboardEvent");
if (CEvent.initKeyEvent)
{
CEvent.initKeyEvent("keypress", true, true, null, false, false, false, false, 0, 32);
Test.dispatchEvent(CEvent);
CEvent = document.createEvent("KeyboardEvent");
CEvent.initKeyEvent("keypress", true, true, null, false, false, false, false, 8, 0);
Test.dispatchEvent(CEvent);
}
}
//- The following line works for Chrome, but I'm not sure how to set the caret position
Test.scrollLeft = Test.scrollWidth;
}
を、それが直後スペースキーとその後、バックスペースキーを送信するためにinitKeyEventを使用しています。 Chromeでは、最後までキャレットを設定する方法はわかりませんが、入力にscrollLeftを設定するとほとんど動作しますが、少しでも遊んでみることはできますか? Operaについては、わかりません。私は確かにあなたがあなたの方法であなたを助けることを願っています。
whooops!この例で使用したタイトルで質問を投稿しました!編集済み – Drevak
FF3.5.2ではこれを再現できません。どのブラウザがテキストの先頭に「ビューポート」を表示しますか? – kangax
恥私はそれが元のタイトルで、それは面白かったでしょう:)を参照してくださいなかった:) –