我目前正在 Stack Overflow 上制作我的开发故事。我添加了一些开源项目,并在描述中添加了一个链接。
我试图做到这一点,当您单击 bio 中的链接时,该链接会在新的tab/ 中打开window。我搜索并找到了三种方法:
[my link](https://myawesome.link)[newtab]
Run Code Online (Sandbox Code Playgroud)
[my link](https://myawesome.link){:target="_blank"}
Run Code Online (Sandbox Code Playgroud)
<a href="https://myawesome.link" target="_blank">my link</a>
Run Code Online (Sandbox Code Playgroud)
我尝试了三种方法,但没有任何效果。
所以我的问题是,有可能这样做吗?
如果可能,我该怎么做?
回到 Markdown 创建时,XHTML 是新的热点,XHTML 不允许target在元素中使用该属性。因此,Markdown 没有获得内置支持target(可能还有其他促成该设计决策的因素)。
[my link](https://myawesome.link)[newtab]是某人试图提出克服该限制的建议。我不知道有任何采用此提案的 Markdown 实现。如果有,它将是非标准的并且不可移植。
属性列表 ( [my link](https://myawesome.link){:target="_blank"}) 也是非标准的,据我所知,只有许多 Markdown 实现中的三个都采用了它们。即便如此,它们通常默认关闭。您需要查阅正在使用的实现的文档以查看它是否受支持,如果支持,如何打开该功能。
当然,原始 HTML ( <a href="https://myawesome.link" target="_blank">my link</a>) 在 Markdown 中总是可以接受的。但正如您链接到的答案中所解释的那样:
然后他们通过 HTML 白名单过滤器运行整个输出,无论如何,因为即使是仅 Markdown 的文档也很容易包含 XSS 攻击。
我希望 StackExchange(包括 StackOverflow)以及许多其他网站都是这种情况。为了更好地理解人们为什么不喜欢target(以及为什么它在 XHTML 中无效),请阅读以下问题的许多答案:在 HTML5 中使用 target="_blank" 好吗?
简而言之,似乎由于 XHTML 使其无效,因此支持比 HTML4 时代要少得多。诚然,HTML5 规范将它带回来了,但它似乎没有以前那样广泛的支持。
最好的答案是使用原始 HTML,如果这不起作用(您正在使用的服务将其删除)接受这是不可能的。