Markdown文档中的Bookmarklet链接

Ada*_*ile 14 markdown bookmarklet

如何在Markdown解析文档中包含书签?降价时是否有任何"标记"基本上都是"不解析这个"?

例如,你可以有类似的东西:

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

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

[Hello World!](javascript:function my_bookmarklet(){alert('Hello World');}my_bookmarklet();)
Run Code Online (Sandbox Code Playgroud)

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

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

有没有办法解决?

不,我不是试图将恶意书签放在SO或任何东西,但我想使用markdown为我的网站,并希望发布我写的一些bookmarklet.

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

这似乎在WMD和摊牌中很有效,但在Markdown.php编辑器中却没有.有人有Markdown.php的经验吗?

ste*_*son 6

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

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

并得到你好. 编辑:不再适用于SO,这是一件好事

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

[Hello](javascript:function my_bookmarklet(\){alert('Hello World'\);}my_bookmarklet(\);)
Run Code Online (Sandbox Code Playgroud)

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

  • Markdown的默认行为是单独保留内联HTML,因此如果您在自己的网站上使用Markdown,示例应该有效.但是,任何显示用户提交的内容的网站都应该限制它允许的HTML以防止XSS.从警示('Hello World')示例到劫持其他人的SO帐户只是一小步.回想起来,我很惊讶这些例子最初在我的回答中起作用.他们真的不应该,也不应该. (2认同)

小智 6

[Hello World!][1]
[1]:javascript:alert('Hello World')
Run Code Online (Sandbox Code Playgroud)