在firefox和chrome window.getSelection用於獲取文檔中的當前選擇,但是當前的選擇是在textarea中,window.getSelection沒有返回選擇,但textarea本身。 那麼,如何在Firefox和Chrome中正確選擇?window.getSelection在textarea中獲得正確的選擇
1
A
回答
0
Textareas和文本輸入有一個不同的選擇API。它們具有selectionStart
和selectionEnd
屬性,它們是textarea/input的value
屬性內的字符偏移量。這些屬性在HTML5中已經標準化,並且由所有主流瀏覽器的當前版本實現,儘管IE < 9又具有不同的API。
2
您是否需要在textarea中獲取選定的文本?你可能會問的selectionStart和選定結束(在Internet Explorer中不存在,可與Firefox和Chrome)
Select some text below and then click the button:<br/>
<textarea id="myTextarea" rows="5" cols="30">
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
</textarea>
<button onclick="alert(getTextSelection())">alert text selection</button>
<script type="text/javascript">
function getTextSelection(){
var field = document.getElementById("myTextarea");
var startPos = field.selectionStart;
var endPos = field.selectionEnd;
var field_value = field.value;
var selectedText = field_value.substring(startPos,endPos);
return selectedText;
}
</script>
如果有多個文本域,你希望得到關於選擇輸出:
Select some text in either textarea:<br/>
<textarea rows="5" cols="30" onselect="alert(getTextSelection(this))">
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
</textarea>
<textarea rows="5" cols="30" onselect="alert(getTextSelection(this))">
fate it seems
not without a sense of irony
</textarea>
<script type="text/javascript">
function getTextSelection(field){
var startPos = field.selectionStart;
var endPos = field.selectionEnd;
var selectedText = field.value.substring(startPos,endPos);
return selectedText;
}
</script>
或者你還可以做一個按鈕,但通過使用全局變量:
Select some text in either textarea and click the button:<br/>
<textarea rows="5" cols="30" onselect="window.selectedTextarea=this">
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
</textarea>
<textarea rows="5" cols="30" onselect="window.selectedTextarea=this">
fate it seems
not without a sense of irony
</textarea>
<button onclick="alert(getTextSelection())">alert text selection</button>
<script type="text/javascript">
// warning: global variable: dirty!!!
var selectedTextarea
function getTextSelection(){
var field = window.selectedTextarea;
var startPos = field.selectionStart;
var endPos = field.selectionEnd;
var selectedText = field.value.substring(startPos,endPos);
return selectedText;
}
</script>
相關問題
- 1. 正確的方式來獲得選擇jQuery的選項從
- 2. 使用過濾器,以獲得正確的選擇的選項
- 3. Scrapy:如何獲得一個正確的選擇
- 4. 獲得更改功能之外的正確選擇
- 5. 如何在索引中選擇正確的列以獲得更好的性能
- 6. 獲得正確的jQuery中
- 7. 如何在ReactJS中獲得突出顯示的文本(window.getSelection())
- 8. 正確選擇
- 9. 獲得正確的
- 10. SmartGWT的:複選框樹 - 正確的方法來獲得選擇複選框值
- 11. 在NuGet中選擇正確的NHibernate包以獲得延遲加載支持
- 12. 在javascript中選擇正確的表單
- 13. 在iOS中選擇正確的語言
- 14. 在java中選擇正確的引擎
- 15. MS SQL Server無法獲得選擇和列正確
- 16. 在ExtJs中獲得正確的colIdx
- 17. 獲得正確的輸出以獲得正確的點擊
- 18. 得到與textarea的複選框,並選擇在一個jquery
- 19. textarea ::選擇和:: - moz選擇
- 20. 如何在window.getSelection中選擇多個單詞
- 21. 選擇$ pristine textarea
- 22. 映射針對可選擇和獲得正確的主鍵中的SQLAlchemy
- 23. 無法獲取Snap.svg在Rails中選擇正確的svg元素
- 24. 正確選擇UIImage
- 25. 更改在textarea中選擇的行
- 26. 引導選擇 - 獲得選擇的值
- 27. 如何在JTreeTable中正確選擇?
- 28. 我如何在ARM彙編得到正確的選擇
- 29. 問題在得到正確的結果對於選擇框
- 30. $選擇獲得ID
它時,你知道哪些textarea的集中工作,但如果有多個文本區域,這不能得到位置 –