【问题标题】:Does a JavaScript bookmarklet need to be a valid URL?JavaScript 小书签是否需要是有效的 URL?
【发布时间】:2010-03-03 05:13:44
【问题描述】:

我四处搜索,但找不到任何有关此的信息;也许我没有使用最好的搜索词。

JavaScript 小书签(即使用“javascript:”伪协议的链接,可以拖到浏览器的地址栏并在任何页面上打开)是否需要是有效的 URL?我听说确实如此,但我想找到一个明确的答案。

Google 阅读器有一个“阅读器中的注释”小书签,它使用以下 JavaScript 代码:

javascript:var%20b=document.body;var%20GR________bookmarklet_domain='http://www.google.com';if(b&&!document.xmlVersion){void(z=document.createElement('script'));void(z.src='http://www.google.com/reader/ui/link-bookmarklet.js');void(b.appendChild(z));}else{}

编码的空格 (%20) 似乎是为了遵守有效的 URL,但花括号和分号(例如,有效的 URL 字符)是否是有效的 URL 字符?

如果答案是肯定的,是否有一个 JavaScript 函数或在线实用程序可以让我一步一步使我的书签成为有效的 URL? JavaScript 有 encodeURI,但它也会对括号、花括号等进行编码。

【问题讨论】:

    标签: javascript url protocols bookmarklet


    【解决方案1】:

    你的问题的答案是肯定的,(不过有些浏览器比如火狐会自动转义空格之类的东西)如果你想这样做,一个好工具是John Gruber's Javascript Bookmarklet Perl Script (yeah, the Markdown guy!)

    【讨论】:

      【解决方案2】:

      我做了一些小书签,但我不记得像这样对它们进行编码。所以我想没有必要(但某些浏览器可能需要,比如 IE)

      【讨论】:

      • 谢谢,Ionut。我还注意到非编码书签可以工作(至少在我检查过的浏览器中,如 FF/3.6 和 Saf/4),但是知道浏览器如何充分利用坏代码,我认为遵循规则,如果可能的话。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-01
      • 2012-05-23
      • 1970-01-01
      相关资源
      最近更新 更多