2015-11-09 22 views
0

我想要做一个简单的书签(书签与JavaScript小程序),将获得选定的文本,扭转它,然后在屏幕上更改它。例如,如果用户选择了一些文本,例如,单词hello,然后激活这个小书签,文本将变成olleh。到目前为止,我有以下几点:Javascript编辑文本通过书签选择

javascript: 
function getSelectedText() { 
var text = ""; 
if (window.getSelection) { 
    text = window.getSelection().toString(); 
} else if (document.selection && document.selection.type != "Control") { 
    text = document.selection.createRange().text; 
} 
    return text; 
} 
var selectedText = getSelectedText(); 
var textArray = selectedText.split(""); 
var reverseArray = textArray.reverse(); 
var reverseText = reverseArray.join(""); 
alert(reverseText); 

我从here得到了getSelectedText()功能。最后,书签只是提醒反向文本。你如何做到这一点,它实际上取代了网页上的文字?预先感谢任何可能的帮助。

回答

0

您可以添加这个到最后:

var nodeValue = window.getSelection().baseNode.nodeValue; 
window.getSelection().baseNode.nodeValue = nodeValue.replace(selectedText, reverseText); 

编辑

使用选择在正确的地方倒车偏移,str.replace只替换词的首次出现,它可以是对于诸如“the”之类的常见词语是错误的。

var selection = window.getSelection(); 
var start = selection.anchorOffset; 
var end = selection.focusOffset; 
var nodeValue = selection.baseNode.nodeValue; 
var newValue = nodeValue.slice(0, start) + reverseText + nodeValue.slice(end); 
window.getSelection().baseNode.nodeValue = newValue; 
+0

这种作品。我似乎记得尝试了一些产生相同结果的东西,它取代了页面上的所有文本。我认为这是可行的,因为它会放入带有'