Я чувствую, что, возможно, неправильно прочитал вопрос после прочтения других ответов, рассказывающих о взломах и тому подобном, но я собрал быстрый пример, который отлично работает в IE8 и Firefox 3.5.2. Предполагая, что входной элемент с id = "Test" и вызывая следующую функцию onfocus:
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;
}
В Firefox он использует initKeyEvent для отправки клавиши пробела, а затем сразу после нее клавишу возврата. В Chrome я не уверен, как установить каретку до конца, но настройка scrollLeft на входе почти работает, может быть, вы можете немного поиграть с этим? Что касается оперы, я понятия не имею. Я, конечно, надеюсь, что это поможет вам на вашем пути.