需要Javascript替换Bookmarklet的帮助吗

需要Javascript替换Bookmarklet的帮助吗,javascript,Javascript,我已经搜索了其他问题并尝试了这些建议,但我仍然无法成功实现我的bookmarklet。如对我的代码有任何建议,将不胜感激。我的目标是让脚本通过document.getSelection捕获当前的文本选择,然后用加号替换所有的点。这是针对每行数据都有几个点的任务 javascript:(function(){ var stringselect = null; function replaceString (text) { text = text.replace('.','+'

我已经搜索了其他问题并尝试了这些建议,但我仍然无法成功实现我的bookmarklet。如对我的代码有任何建议,将不胜感激。我的目标是让脚本通过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.
})();
你没有说它怎么不起作用,但有一件事突然向我袭来:

text = text.replace('.','+');
那只会取代第一个。。如果要替换所有参数,则必须使用正则表达式而不是字符串作为find参数,并且需要在regex上设置全局标志:

text = text.replace(/\./g,'+');
在开始之前需要反斜杠。因为在正则表达式中是特殊的,但实际上你在寻找一个真正的,所以我们逃避它。/分隔regex文本,g是全局标志

另外:我想你的意思是,不是document.getSelection,请注意IE不支持它。如果您需要跨浏览器可靠地获取文本选择,则需要进行一些工作。有一个叫做“帮助”的方便的库。

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'+':未替换;alertresult;}

谢谢你的建议。我尝试了以下javascript代码:函数{var stringselect=document.getSelection;var result=stringselect.replace/\./g,'+';alertresult;};但是警报框没有弹出。对我来说是有效的-但是请注意,在Fx6+中,您需要将其作为一个真正的书签或从控制台进行测试,因为他们已经停止允许来自该位置的任意JSbar@user930286我把它做成了跨浏览器的now@user930286太好了-请接受答案:谢谢你的解释。我根据@mplungjan的建议尝试了以下代码,但没有弹出警报框。我使用document.getSelection作为我的另一个书签集,它工作正常。javascript:函数{var stringselect=document.getSelection;var result=stringselect.replace/\./g'+';alertresult;};