我正在尝试创建一个简单的书签(带有javascript applet的书签),它将获取所选文本,反转它,然后在屏幕上更改它。例如,如果用户选择一些文本,比如单词hello,然后激活此bookmarklet,则文本将变为olleh。到目前为止,我有以下内容:
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 :(得分:0)
您可以将其添加到最后:
var nodeValue = window.getSelection().baseNode.nodeValue;
window.getSelection().baseNode.nodeValue = nodeValue.replace(selectedText, reverseText);
修改强>
在正确的位置使用选择偏移进行倒车,str.replace
仅替换单词的第一个出现位置,对于常见单词,例如""
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;