我搜索了其他问题并尝试了建议,但我仍然无法成功实现我的书签。我们将对以下代码的任何建议表示赞赏。我的目标是让脚本通过document.getSelection()
捕获当前文本选择,然后用加号替换所有点(对于每行数据都有几个点的任务)。
javascript:(function(){
var stringselect = null;
function replaceString (text) {
text = text.replace('.','+');
return text;
}
var stringselect = document.getSelection();
var result = replaceString(stringselect);
alert(result); //for testing purposes, i wanted to see the replaced text in the alert box but it didn't pop up.
})();
答案 0 :(得分:0)
你还没有说 它不起作用,但有一件事突然出现在我身上:
text = text.replace('.','+');
这只会替换第一个 .
。如果要替换所有这些,则必须使用正则表达式而不是字符串作为“find”参数,并且需要在正则表达式上设置“global”标志:
text = text.replace(/\./g,'+');
(您需要在.
之前使用反斜杠,因为.
在正则表达式中很特殊,但您实际上正在寻找真正的.
,因此我们将其转义。){ {1}}分隔正则表达式文字,/
是“全局”标记。
另外:我认为您的意思是window.getSelection
,而不是g
,请注意IE不支持until IE9。如果您需要跨浏览器可靠地获取文本选择,那么您需要完成一些工作。有一个名为rangy的方便的图书馆可以提供帮助。
答案 1 :(得分:0)
Crossbrowser现在
javascript:(function(){ var userSelection; if (window.getSelection) { userSelection = window.getSelection().toString();} else if (document.selection) { rng = document.selection.createRange(); userSelection =rng?rng.text:"ie borked"} var result = (userSelection)?userSelection.replace(/\./g,'+'):"Nothing replaced"; alert(result); })();