我覺得我可能已經閱讀其他的答案談論黑客和這樣的誤讀後的問題,但我拼成一個快速的樣品是工作在IE8和Firefox 3.5.2罰款。假設有一個id =「測試」並調用下面的函數的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幾乎可行,也許您可以稍微玩一下?至於Opera,我不知道。我當然希望這可以幫助你在途中。
whooops!我用這個例子中使用的標題發佈了這個問題!編輯 – Drevak 2009-08-30 18:47:58
我不能用FF3.5.2重現這一點。哪個瀏覽器帶來「視口」開始的文本? – kangax 2009-09-05 02:01:09
恥辱我沒有看到它的原始標題的問題,這將是有趣的:) – 2009-09-10 12:47:43