一个简单的问题:如何以编程方式在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. 在firefox + greasemonkey中的Javascript文本范围
- 3. jq:选择范围
- 4. 选择从范围
- 5. 选择由范围
- 6. gmaps4rails选择范围
- 7. Mysql范围选择
- 8. 在文本框中选择多个文本范围silverlight
- 9. 日期范围选择器 - 24小时范围选择
- 10. 选择范围,使错误
- 11. 范围选择和Mozilla
- 12. 范围选择错误
- 13. Redux的范围选择
- 14. Doctrine2选择生日范围
- 15. 使用RegExp选择范围
- 16. 选择数据范围
- 17. 设置选择范围
- 18. 范围选择器与javascript
- 19. 选择隐藏的范围
- 20. 选择以下范围jquery
- 21. 复杂选择的范围
- 22. 选择范围在VBA
- 23. 选择从范围功能
- 24. Excel范围选择问题
- 25. MySQL。选择年份范围
- 26. javascript选择/范围坐标
- 27. 无法选择范围
- 28. 日期范围选择
- 29. 范围对象,获取选择父节点Chrome vs Firefox
- 30. 获得HTML输出选择/范围从网页在Mozilla Firefox
你从10号到15号的符号究竟意味着什么?段落元素中的字符? – 2010-05-11 20:17:09