2013-04-13 191 views
2

我正在制作一个Web应用程序,该应用程序将屏幕分为两个窗口,一面是基于Web的文本编辑器,另一面是普通窗口。 我想找到一种方法,可以让用户在浏览器端突出显示一些文本,然后将突出显示的文本自动保存到字符串中,然后我就可以操纵字符串。将突出显示的文本保存为字符串

有没有人有任何想法?任何帮助将不胜感激。

+0

您为此项目定位了哪些浏览器? – mcanfield

回答

3

 function getSelectionText() { 
 
      var text = ""; 
 
      if (window.getSelection) { 
 
       text = window.getSelection().toString(); 
 
      } else if (document.selection && document.selection.type != "Control") { 
 
       text = document.selection.createRange().text; 
 
      } 
 
      return text; 
 
     } 
 
     $(document).ready(function(){ 
 
      $('div').mouseup(function (e){ 
 
       alert(getSelectionText()) 
 
      }) 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
     Hello, this is a highlight text test 
 
    </div>

+0

这很酷!谢谢! – irva91

2

所以你必须在这里两个步骤。

  1. 捕获mouseup事件。
  2. 返回选定的文本。无论文本在文档中选择

可以通过JS调用访问:

window.getSelection() 

但这是针对特定浏览器。所以你可以使用这段代码来覆盖所有浏览器中的选定文本。

function getSelectedText() { 
    var txt = '' 
    if (window.getSelection) { 
     txt = window.getSelection(); 
    } else if (document.getSelection) { 
     txt = document.getSelection(); 
    } else if (document.selection) { 
     txt = document.selection.createRange().text; 
    } 
    return txt; 
} 

我假设你使用的是类似jQuery的库。所以这可以帮助mouseup事件。您可能不希望捕获整个文档中的选择。所以你可以绑定到你需要的任何元素。像这样的我的jsfiddle:http://jsfiddle.net/xh799/