18

如何在 Markdown 解析文档中包含书签?降价是否有任何“标签”,基本上说“不要解析这个”?

例如,您可能有类似的东西:

<a href="javascript:function my_bookmarklet()
                {alert('Hello World');}
                my_bookmarklet();">Hello</a>

但是,如果我尝试将其中的 javascript 传递到 markdown 中的链接中,如下所示:

[Hello World!](javascript:function my_bookmarklet(){alert('Hello World');}my_bookmarklet();)

你得到一个混乱的链接,如下所示。

[Hello World!](javascript:function my_bookmarklet(){alert('Hello World');}my_bookmarklet();)

有没有办法解决?

不,我不想将恶意书签放在 SO 或任何东西中,但我想为我的网站使用降价,并想发布一些我写的书签。

编辑:我以为我有答案……但现在看来我还没有答案。

这似乎在 WMD 和摊牌中效果很好,但在 Markdown.php 编辑器中却不行。任何人都有专门使用 Markdown.php 的经验吗?

4

3 回答 3

8
[Hello World!][1]
[1]:javascript:alert('Hello World')
于 2011-12-31T06:53:48.337 回答
7

Markdown 将保留任何 HTML,因此您只需输入

<a href="javascript:function my_bookmarklet()
                {alert('Hello World');}
                my_bookmarklet();">Hello</a>

并打招呼。 编辑:不再适用于 SO,这是一件好事

您还可以使用反斜杠转义特殊字符(在这种情况下,它会将您的 Javascript 中的“)”视为 URL 的结尾)并且链接语法将起作用:

[Hello](javascript:function my_bookmarklet(\){alert('Hello World'\);}my_bookmarklet(\);)

给出 [Hello](javascript:function my_bookmarklet(){alert('Hello World');}my_bookmarklet();)

于 2008-10-14T23:14:03.333 回答
2

我知道这是一个非常古老的问题,但是(如果有人像我一样在这里找到他们的方式),如果您对脚本进行 url 编码,它将起作用。

例如:

    [Hello World](javascript:%28function%28%29%7Balert%28%22Hello%20World%22%29%7D%29%28%29%3B)

当然,如上所述,它在 SO 上不起作用。

注意:一些 url-encoders 会将空格(“”)替换为“+”,这适用于常规 url,但不适用于 js 代码,空格应替换为“%20”

编辑:这似乎并不普遍正确。我想特定的降价解析器会在这里进行最终调用。但这在更多使用降价的地方对我有用。

于 2018-04-12T23:36:07.483 回答