JavaScript 获取选中文本的跨浏览器兼容实现

作者:白露时间:2026-10-30 09:26:31浏览:162

本文介绍一种在 JavaScript 中获取用户选中文本的方法,重点解决不同浏览器的兼容性问题。通过封装 getSelectedText 函数,利用 document.body.onclick 事件触发,实现了对选中文字内容的提取与展示。

JavaScript 获取选中文本的跨浏览器兼容实现

本文介绍一种在 JavaScript 中获取用户选中文本的方法,重点解决不同浏览器的兼容性问题。

具体运行效果如下所示:

JavaScript 获取选中文本的跨浏览器兼容实现

实现该功能的完整代码如下:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>文本被选中</title>
<style type = "text/css">
 #showSelected{
 margin:100px auto;
 width:100%;
 height:200px;
 background:#ececec;
 border:1px solid #ccc;
 }
</style>
<script type = "text/javascript">
//传入要获取其中选择文本的对象
function getSelectedText(e){
  //IE下获取选择文本
  if (document.selection) {
   return document.selection.createRange().text;
  }
  //firefox下获取选择文本
  else
   if (window.getSelection().toString()) {
    return window.getSelection().toString();
   }
   //firefox下获取input或textArea域的选择文本
   else
    if (e.selectionStart != undefined && e.selectionEnd != undefined) {
     var start = e.selectionStart;
     var end = e.selectionEnd;
     return e.value.substring(start, end);
    }
}
document.onmouseup = function(){
  var ta = document.getElementById("myDiv");
  document.getElementById("showSelected").innerHTML = getSelectedText(document.body);
}
</script>
</head>
  <body>
    <div id="myDiv">
      This is a prograph for testing!
    </div>
 <div id = "showSelected"></div>
  </body>
</html>

如需了解更多 JavaScript 相关知识,可参考本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》。

希望上述代码示例能对您的 JavaScript 编程工作提供实际帮助。

作者最新文章