我正在制作一个Web应用程序,该应用程序将屏幕分为两个窗口,一面是基于Web的文本编辑器,另一面是普通窗口。 我想找到一种方法,可以让用户在浏览器端突出显示一些文本,然后将突出显示的文本自动保存到字符串中,然后我就可以操纵字符串。将突出显示的文本保存为字符串
有没有人有任何想法?任何帮助将不胜感激。
我正在制作一个Web应用程序,该应用程序将屏幕分为两个窗口,一面是基于Web的文本编辑器,另一面是普通窗口。 我想找到一种方法,可以让用户在浏览器端突出显示一些文本,然后将突出显示的文本自动保存到字符串中,然后我就可以操纵字符串。将突出显示的文本保存为字符串
有没有人有任何想法?任何帮助将不胜感激。
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>
这很酷!谢谢! – irva91
所以你必须在这里两个步骤。
可以通过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/
您为此项目定位了哪些浏览器? – mcanfield