這已經到了絕對的沮喪。我們正在嘗試編寫一些js,這些js將在與textarea相關聯的文本中的特定位置插入文本。它似乎應該很簡單,但到目前爲止我們還沒有弄清楚。爲什麼textarea.selectionStart不能在ie上工作?
使我們的過程複雜化的是我們有一個浮動菜單,您可以從中選擇要插入的內容。所以順序是:
位置到textarea中所需的插入位置。使用調試器斷點,Visual Studio調試器指示textarea對象將selectionStart和selectionEnd定義爲具有正確值的數字。如果在這個休息時間,你嘗試寫js訪問selectionStart和selectionEnd你得到undefined(這是沒有道理的,但這裏有很多發佈說,其他人都有相同的問題)
現在我們的位置到浮動菜單,它只不過是一個表格上的div包裝器,td元素調用插入文本的函數)。如果我們完全點擊td元素,文本將被插入到它所屬的位置。如果在任何時候我們點擊td元素外部但是在菜單內部,文檔選擇被重置爲文本區域的開始,並且我們插入錯誤的位置。
我們嘗試捕獲與菜單關聯的onclick事件鏈,並且沒有任何明顯的事情會導致文檔選擇發生變化,但它的作用不大。
我們嘗試了各種解決方法,我們將onClick放在textarea本身上,記住textarea的當前範圍,但總是在緩衝區的前端結束。
所以簡單來說:爲什麼不和的createTextRange文檔選擇行爲上即理性的態度和解決辦法?
jquery做了什麼解決這個問題,因爲對這個帖子最常見的答案似乎是使用jQuery。
你可以通過閱讀它的源代碼來查看jQuery如何自己做它:http://code.jquery.com/jquery-latest.js – TJHeuvel
我的罐頭推薦給與範圍/選擇有關的所有東西:** [使用Rangy]( http://code.google.com/p/rangy/).** –