使用js怎样自动选中页面中的一段文字

我的页面中有一段文字是放在span里显示的,我想实现点击一个按钮,js就自动选中这段文字,请问怎么实现?要求兼容性好一些

评论 (0)链接2012-07-17 
  
<script type="text/javascript">
function selectText() {
if (document.selection) {
var range = document.body.createTextRange();
range.moveToElementText(document.getElementById('selectable'));
range.select();
} else if (window.getSelection) {
var range = document.createRange();
range.selectNode(document.getElementById('selectable'));
window.getSelection().addRange(range);
}
}
</script>
<span id="selectable">http://example.com/page.htm</span>
<input type="button" onclick="selectText()" value="按钮" />
该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0)链接 • 2012-07-17

一下是给你一个jquery版的 测试IE、FF、360、chrome、opera、搜狗

  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</HEAD>
<SCRIPT LANGUAGE="JavaScript" src="jquery-1.4.2.min.js"></SCRIPT>
<BODY>
<div onclick="SelectText('myDiv')">点击选中</div>
<span id="myDiv">
测试选中内容
</span>
<script>
function SelectText(element) {
var text = document.getElementById(element);
if ($.browser.msie) {
var range = document.body.createTextRange();
range.moveToElementText(text);
range.select();
} else if ($.browser.mozilla || $.browser.opera) {
var selection = window.getSelection();
var range = document.createRange();
range.selectNodeContents(text);
selection.removeAllRanges();
selection.addRange(range);
} else if ($.browser.safari) {
var selection = window.getSelection();
selection.setBaseAndExtent(text, 0, text, 1);
}
}
</script>
</BODY>
</HTML>
该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (1)链接 • 2012-07-17
  • 0 支持
    用id选取是不是应用范围小了一些,不如用class好呢。比如,需要高亮显示同一篇文章中的“德问”文字,多个“德问”文字分布在文章中,这样,id的情况就不适用了。 – nan104 2012-07-19
德问是一个专业的编程问答社区,请 登录注册 后再提交答案