我有一个脚本,它使用 selectionStart 和 selectionEnd 替换网页上 textField 中的选定文本。它在除 Opera 12 之外的所有浏览器中都能正常工作(当然,IE 使用不同的方法)。在 Opera 中 selectionStart 总是与 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
这些只是代码的一部分。当用户单击网页上的文本链接时,将调用该代码。我注意到的一件奇怪的事情是,它有时会起作用,但大多数时候却不起作用。