一個簡單的問題:如何以編程方式在FireFox中選擇頁面的文本片段?例如,有一段文字,用戶點擊按鈕,從第10到第15的符號被選中,就像用戶以常規方式拖動鼠標一樣。Firefox選擇文本範圍
2
A
回答
3
在Firefox中,你可以使用Range對象,如W3C規定。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Range test</title>
<style>
#trigger { background: lightgreen }
</style>
</head>
<body>
<p id="test">This is some (rather short) text.</p>
<span id="trigger">→ Click here! ←</span>
<!-- Yes, I know, ‘Click here!’ is an evil message -->
<script>
var testCase = function() {
var userSelection;
if (window.getSelection) { // W3C default
userSelection = window.getSelection();
} // an extra branch would be necessary if you want to support IE
var textNode = document.getElementById('test').firstChild;
var theRange = document.createRange();
// select 10th–15th character (counting starts at 0)
theRange.setStart(textNode, 9);
theRange.setEnd(textNode, 14);
// set user selection
userSelection.addRange(theRange);
};
window.onload = function() {
var el = document.getElementById('trigger');
el.onclick = testCase;
};
</script>
</body>
</html>
請注意,您必須得到TextNode
設置的選擇,這是<p>
元素的firstChild
。另外請注意,這個例子在IE中不起作用,你必須使用一些專有方法。一個很好的介紹在QuirksMode。
1
我不確定是否有辦法對像段落這樣的任意DOM元素執行此操作,但對於textarea元素,我相信您需要使用selectionStart
和selectionEnd
屬性並指定從哪裏開始和結束。
var textarea = document.getElementsByTagName('textarea')[0];
textarea.selectionStart = 10;
textarea.selectionEnd = 15;
希望這會有所幫助!
相關問題
- 1. jQuery從範圍內選擇文本
- 2. 文本處理選擇日期範圍
- 3. 在firefox + greasemonkey中的Javascript文本範圍
- 4. 範圍和選擇
- 5. 選擇由範圍
- 6. Mysql範圍選擇
- 7. gmaps4rails選擇範圍
- 8. 選擇從範圍
- 9. jq:選擇範圍
- 10. 在文本框中選擇多個文本範圍silverlight
- 11. 日期範圍選擇器 - 24小時範圍選擇
- 12. 使用python範圍選擇一個範圍的文件
- 13. 將範圍選擇複製到文本文件
- 14. 選擇數據範圍
- 15. 選擇日期範圍
- 16. CQL多範圍選擇
- 17. 選擇從範圍功能
- 18. 選擇日期範圍
- 19. 範圍選擇和Mozilla
- 20. MySQL。選擇年份範圍
- 21. 阿土多範圍選擇
- 22. 選擇範圍與行號
- 23. Doctrine2選擇生日範圍
- 24. QString選擇行範圍
- 25. MySQL的選擇範圍內
- 26. Db2從範圍中選擇
- 27. Redux的範圍選擇
- 28. 設置選擇範圍
- 29. SQL查詢範圍選擇
- 30. R選擇時間範圍
你從10號到15號的符號究竟意味着什麼?段落元素中的字符? – 2010-05-11 20:17:09