從頭開始取得字元中文字區域中的插入符號位置
確定
在基於 Mozilla 的瀏覽器(如 Firefox 和 Safari)中,您可以直接存取 textarea.selectionStart 來取得插入符號的位置從一開始就涉及字元。但是,對於像 Internet Explorer 這樣的瀏覽器,這種方法可能不起作用。
為了跨瀏覽器相容性,您可以實現以下 JavaScript 函數:
function getCaret(node) { if (node.selectionStart) { return node.selectionStart; } else if (!document.selection) { return 0; } var c = "1", sel = document.selection.createRange(), dul = sel.duplicate(), len = 0; dul.moveToElementText(node); sel.text = c; len = dul.text.indexOf(c); sel.moveStart('character',-1); sel.text = ""; return len; }
此函數利用 document.selection對象,在 IE 中可用,用於確定插入符的位置。它首先建立一個範圍對象,複製它,並將範圍移動到文字區域的開頭。然後,它在插入符號的位置添加一個特殊字元併計算後續文字的長度。這提供了基於字元的位置。
要獲得更全面的解決方案,可以使用 jQuery FieldSelection Plugin 等插件,在文字區域中提供進階文字選擇和操作功能。
最後,需要注意的是程式碼包含一個「編輯」部分,其中包含更新後的 getCaret 函數實現,該函數更加最佳化。請務必參考更新後的程式碼範例以取得最新版本的函數。
以上是如何取得字元文字區域中的插入符位置?的詳細內容。更多資訊請關注PHP中文網其他相關文章!