Bookmarklet在每个URL的末尾添加参数

val*_*oni 4 javascript regex bookmarklet

我正在尝试使用一个简单的书签,在任何URL的末尾添加一个简短的参数

我使用?clearcache来清空内部缓存,所以为了不每次都输入它,我正在寻找一个简单的解决方案

我的网站是

http://subdomain.mysite.net/ 
Run Code Online (Sandbox Code Playgroud)

并使用书签我想让URL转到

http://subdomain.mysite.net/?clearcache
Run Code Online (Sandbox Code Playgroud)

与更深的页面相同,正如我希望的那样

http://subdomain.mysite.net/some-page/?clearcache
Run Code Online (Sandbox Code Playgroud)

我正在尝试

javascript:location=location.href.replace(/http:/g,"/?clearcache")
Run Code Online (Sandbox Code Playgroud)

但它不起作用

当我点击该书签时,我的URL就变成了

http://subdomain.mysite.net/?clearcache//subdomain.mysite.net/
Run Code Online (Sandbox Code Playgroud)

我觉得我很接近它,但我只需要专家的小小提示.我希望得到答复.谢谢

Vik*_*ukh 6

这应该可以解决您的问题:

javascript:void((function(){var loc = location.href; loc.indexOf("?") == -1 ? (location.href = loc+"?clearcache") : (location.href = loc+"&clearcache");})());

说明

检查是否存在任何其他查询字符串参数.如果是,则clearcache使用&附加或使用附加到URL附加?.

  • 在添加参数之前,最好检查它是否已经在 URL 中。这个修改后的版本会这样做:`javascript:void((function(){var loc = location.href; if (loc.indexOf('clearcache') >= 0) return; loc.indexOf("?") < 0 ? (location.href = loc+"?clearcache") : (location.href = loc+"&clearcache");})());` (2认同)