Javascript Bookmarklet根据所选文本转到URL

Javascript Bookmarklet根据所选文本转到URL,javascript,bookmarklet,Javascript,Bookmarklet,我如何为Google Chrome编写一个bookmarklet,将所选文本附加到预定的URL,然后转到修改后的URL 例如,假设基本URL是http://www.mybaseurl.com/。(这个基本URL在bookmarklet代码中是硬编码的。)现在,假设我在一个随机网页上选择文本dog。然后,如果在选中该文本时单击bookmarklet,我希望bookmarklet使浏览器访问以下URL:http://www.mybaseurl.com/dog 如何做到这一点?您可以使用获取当前选定的

我如何为Google Chrome编写一个bookmarklet,将所选文本附加到预定的URL,然后转到修改后的URL

例如,假设基本URL是
http://www.mybaseurl.com/
。(这个基本URL在bookmarklet代码中是硬编码的。)现在,假设我在一个随机网页上选择文本
dog
。然后,如果在选中该文本时单击bookmarklet,我希望bookmarklet使浏览器访问以下URL:
http://www.mybaseurl.com/dog


如何做到这一点?

您可以使用获取当前选定的文本。因此,此bookmarklet可以根据所选文本重定向:

javascript:window.location.href="http://www.mybaseurl.com/"+window.getSelection()

此方法将在新窗口或选项卡中打开url(取决于浏览器设置),而不是在当前选项卡中打开url。所以,你不会失去你的位置。它使用
窗口。打开
而不是
位置=

javascript:(function(){s=document.selection?document.selection.createRange().text:window.getSelection?window.getSelection().toString():document.getSelection?document.getSelection():'';if(s==''){s=prompt('You%20did%20not%20select%20any%20text%20to%20search%20for.%20Enter%20the%20text%20to%20search%20for%20:','');}if(s){window.open('https://mxtoolbox.com/SuperTool.aspx?action=ptr%3a'+s,  '_blank')};})()

单击书签将取消选择文本。您需要不断捕获所选内容。请参阅:您可以使用
window.getSelection()
将所选文本存储为变量,尽管浏览器兼容性不是很好。我知道旧版本的IE使用的是
文档。selection
,正如@Diodeus所说,只要用户单击bookmarklet,文本就会被取消选中。@Diodeus,但看起来不是这样。我错过了什么?