我已经制作的Bookmarklets似乎总是运行良好,即使我没有逃避它们,那么为什么像John Gruber's这样的bookmarklet构建器会将空格等特殊字符转移到%20
?
答案 0 :(得分:1)
如果使用浏览器书签属性编辑器将代码复制/粘贴到书签中,则除了换行符和百分号外,您无需编码。但事实上,Firefox(以及其他浏览器)会为您编码空间。如果在保存后再次检查属性,您将看到它们已编码。您需要对换行进行编码,因为书签只能是1行。您需要对百分号进行编码,因为浏览器期望百分比符号始终代表编码集中的第一个字符。如果您将书签放在HREF
标记的A
属性中的网站上,则适用相同的规则,但您还必须对任何双引号进行HTML编码或URL编码。
许多书签制作者只会使用encodeURIComponent,它编码的内容超出了严格要求,但它可能被认为更“正确”。