Javascript Trim()和replace()在bookmarklet中不起作用
我成功创建了一个bookmarklet,该bookmarklet接受当前的文本选择,并将其用于在新浏览器窗口中打开的谷歌搜索: javascript:(function(){query=getSelection();window.open(“+encodeURI(query));})() 这个书签很好用。在这里,当前文本选择被放置在变量“query”中 然后我尝试做一个小的修改,尝试使用trim()删除文本选择中的任何前导或尾随空格。因此,我将bookmarklet更改为: javascript:(function(){query=getSelection().trim();window.open(“+encodeURI(query));})() 然而,有了这个修正,bookmarklet就不再工作了——当你在书签栏中点击这个bookmarklet时,什么也没有发生 我还尝试使用regex.replace(/^\s+|\s+$/g')来修剪空白,但这也会导致bookmarklet停止工作 知道我做错了什么吗?返回一个对象,而不是Javascript Trim()和replace()在bookmarklet中不起作用,javascript,regex,bookmarklet,Javascript,Regex,Bookmarklet,我成功创建了一个bookmarklet,该bookmarklet接受当前的文本选择,并将其用于在新浏览器窗口中打开的谷歌搜索: javascript:(function(){query=getSelection();window.open(“+encodeURI(query));})() 这个书签很好用。在这里,当前文本选择被放置在变量“query”中 然后我尝试做一个小的修改,尝试使用trim()删除文本选择中的任何前导或尾随空格。因此,我将bookmarklet更改为: javascript
字符串
对象。您可以通过调用toString()
来获取String
对象:
你能试着用下面的代码来修剪吗。 由于trim是JQuery函数。 所以我希望下面的代码可以正常工作
javascript:(function(){query=$.trim(getSelection());window.open("https://www.google.com/search?q="+encodeURI(query));})()
非常感谢您的回复,它发现了问题 正如所建议的,问题似乎在于,在应用.trim()之前,需要通过调用.toString()或类似方法将selection对象转换为string对象 现在工作的bookmarklet是: javascript:(function(){query=getSelection().toString().trim();window.open(“+encodeURI(query));})()
getSelection()不返回字符串对象。您可以尝试将getSelection()转换为字符串,query=getSelection().toString().trim()query=jQuery.trim(getSelection());或查询=$.trim(getSelection());
javascript:(function(){query=$.trim(getSelection());window.open("https://www.google.com/search?q="+encodeURI(query));})()