我有一个脚本,它使用selectionStart和selectionEnd替换网页上textField中的选定文本。它在除Opera 12之外的所有浏览器中都能正常工作(IE当然使用不同的方法)。在Opera的选择中,始终与selectionEnd具有相同的值,无论我做什么。我在读取值之前在textField控件上调用focus()函数。
我也试过读取textField的onblur()事件中的值,selectionStart仍然具有与selectionEnd相同的值。我可能做错了什么?
编辑(添加代码):
var textField = document.getElementById("autocomplete");
if(textField != null)
{
insertTextAtCursor(textField, propertyName);
}
function insertTextAtCursor(el, text) {
var val = el.value, endIndex, range;
if (typeof el.selectionStart != "undefined" && typeof el.selectionEnd != "undefined") {
el.focus();
startIndex = el.selectionStart;
// el.selectionStart has wrong value here
这些只是代码的一部分。当用户单击网页上的文本链接时,将调用该代码。我注意到一件奇怪的事情是,它有时会起作用,大部分时间它都不会起作用。