Javascript Bookmarklet:编码的URI

问题描述 投票:0回答:1

我有一段代码可以打开一个网站。

javascript:(function(){var google = function(){window.location='http://google.de?q=%3D%3D'};google()}())

将代码粘贴到控制台(Chrome)时,将打开网站并正确编码URI。

在JS书签中使用完全相同的代码,它会打开网站,但是解码后的URI会导致我的目标页面失败。

我可以做些什么来使书签工作吗?

PS:在示例中,我使用已经编码的URI,将encodeURIencodeURIComponent放入书签中没有帮助。

javascript bookmarklet
1个回答
1
投票

解析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())
© www.soinside.com 2019 - 2024. All rights reserved.