我有一段代码可以打开一个网站。
javascript:(function(){var google = function(){window.location='http://google.de?q=%3D%3D'};google()}())
将代码粘贴到控制台(Chrome)时,将打开网站并正确编码URI。
在JS书签中使用完全相同的代码,它会打开网站,但是解码后的URI会导致我的目标页面失败。
我可以做些什么来使书签工作吗?
PS:在示例中,我使用已经编码的URI,将encodeURI
或encodeURIComponent
放入书签中没有帮助。
解析URL时,URL中的特殊字符将被解码。
bookmarklet是一个URL。
因此,当解析小书签时,特殊字符被解码。
这会在解析bookmarklet内的URL之前发生,因此在解析时它们已经被解码。
简而言之:您在另一个URL中有一个URL。您需要对特殊字符进行两次编码。
javascript:(function()%7Bvar%20google%20%3D%20function()%7Bwindow.location%3D'http%3A%2F%2Fgoogle.de%3Fq%3D%253D%253D'%7D%3Bgoogle()%7D())