Html 我可以创建与';目标="_“空白”';降价?
有没有办法在Markdown中创建一个在新窗口中打开的链接?如果没有,您建议使用什么语法来执行此操作。我将把它添加到我使用的markdown编译器中。我认为这应该是一种选择。我认为没有降价功能 不过,如果您想使用JavaScript自动打开指向您自己站点外部的链接,可能还有其他可用选项Html 我可以创建与';目标="_“空白”';降价?,html,hyperlink,markdown,target,new-window,Html,Hyperlink,Markdown,Target,New Window,有没有办法在Markdown中创建一个在新窗口中打开的链接?如果没有,您建议使用什么语法来执行此操作。我将把它添加到我使用的markdown编译器中。我认为这应该是一种选择。我认为没有降价功能 不过,如果您想使用JavaScript自动打开指向您自己站点外部的链接,可能还有其他可用选项 var links = document.links; for (var i = 0, linksLength = links.length; i < linksLength; i++) { if
var links = document.links;
for (var i = 0, linksLength = links.length; i < linksLength; i++) {
if (links[i].hostname != window.location.hostname) {
links[i].target = '_blank';
}
}
.就降价语法而言,如果您想获得详细信息,只需使用HTML即可
<a href="http://example.com/" target="_blank">Hello, world!</a>
我见过的大多数降价引擎都支持普通的旧HTML,只适用于这样的情况,即通用文本标记系统无法剪切它。(例如StackOverflow引擎)然后通过HTML白名单过滤器运行整个输出,因为即使是仅标记的文档也很容易包含XSS攻击。因此,如果您或您的用户想要创建\u blank
链接,那么他们可能仍然可以
如果这是您将经常使用的功能,那么创建自己的语法可能是有意义的,但它通常不是一个重要的功能。如果我想在新窗口中启动该链接,我会自己按住ctrl键单击它,谢谢。支持它。它与标准标记语法兼容,但也有许多扩展。您可以这样使用它:
[link](url){:target="_blank"}
我在尝试使用PHP实现降价时遇到了这个问题 由于使用标记创建的用户生成链接需要在新选项卡中打开,但站点链接需要保留在选项卡中,因此我将标记更改为仅生成在新选项卡中打开的链接。因此,并不是页面上的所有链接都链接出来,只是那些使用降价的链接
在markdown中,我将所有链接输出更改为
,使用“查找/替换”非常简单。我不同意将其保留在一个浏览器选项卡中是更好的用户体验。如果你想让人们留在你的网站上,或者回来看完那篇文章,请在一个新的标签中发送他们
基于@davidmorrow的答案,将此javascript放入您的站点,并将外部链接转换为target=\u blank的链接:
<script type="text/javascript" charset="utf-8">
// Creating custom :external selector
$.expr[':'].external = function(obj){
return !obj.href.match(/^mailto\:/)
&& (obj.hostname != location.hostname);
};
$(function(){
// Add 'external' CSS class to all external links
$('a:external').addClass('external');
// turn target into target=_blank for elements w external class
$(".external").attr('target','_blank');
})
</script>
//创建自定义:外部选择器
$.expr[':'].external=函数(obj){
return!obj.href.match(/^mailto\:/)
&&(obj.hostname!=location.hostname);
};
$(函数(){
//将“外部”CSS类添加到所有外部链接
$('a:external').addClass('external');
//对于带有外部类的元素,将target转换为target=_blank
$(“.external”).attr('target','u blank');
})
仅用于外部链接的自动化,使用GNU sed和make
如果有人想系统地为所有外部链接执行此操作。但是,从标记创建(X)HTML后,可以运行以下命令:
sed -i 's|href="http|target="_blank" href="http|g' index.html
通过将上述
sed
命令添加到makefile
中,可以进一步实现自动化。有关详细信息,请参阅GNU或上。您可以通过本机javascript代码执行此操作,如下所示:
var pattern = /a href=/g;
var sanitizedMarkDownText = rawMarkDownText.replace(pattern,"a target='_blank' href=");
您可以使用{[attr]=“[prop]”添加任何属性
例如,使用Markdown-2.5.2的[Google](){target=“_blank”},您可以使用:
[link](url){:target="_blank"}
已完成的alex回答(2010年12月13日) 使用以下代码可以实现更智能的注入目标:
/*
* For all links in the current page...
*/
$(document.links).filter(function() {
/*
* ...keep them without `target` already setted...
*/
return !this.target;
}).filter(function() {
/*
* ...and keep them are not on current domain...
*/
return this.hostname !== window.location.hostname ||
/*
* ...or are not a web file (.pdf, .jpg, .png, .js, .mp4, etc.).
*/
/\.(?!html?|php3?|aspx?)([a-z]{0,3}|[a-zt]{0,4})$/.test(this.pathname);
/*
* For all link kept, add the `target="_blank"` attribute.
*/
}).attr('target', '_blank');
您可以通过在(?!html?| php3?| aspx?
组构造中添加更多扩展来更改regexp异常(请理解此处的regexp:)
对于没有jQuery版本的,请检查以下代码:
var links = document.links;
for (var i = 0; i < links.length; i++) {
if (!links[i].target) {
if (
links[i].hostname !== window.location.hostname ||
/\.(?!html?)([a-z]{0,3}|[a-zt]{0,4})$/.test(links[i].pathname)
) {
links[i].target = '_blank';
}
}
}
var links=document.links;
对于(变量i=0;i
在我的项目中,我正在这样做,效果很好:
[Link](https://example.org/ "title" target="_blank")
但并非所有的解析器都允许您这样做。没有简单的方法可以做到这一点,正如@alex所指出的,您需要使用JavaScript。他的答案是最好的解决方案,但为了优化它,您可能只想过滤到帖子内容链接
<script>
var links = document.querySelectorAll( '.post-content a' );
for (var i = 0, length = links.length; i < length; i++) {
if (links[i].hostname != window.location.hostname) {
links[i].target = '_blank';
}
}
</script>
var links=document.querySelectorAll('.post content a');
对于(var i=0,length=links.length;i
该代码与IE8+兼容,您可以将其添加到页面底部。请注意,您需要将“.post content a”更改为用于发布的类
如图所示:对于重影标记使用:
[Google](https://google.com" target="_blank)
在这里找到它:
我使用的是Grav CMS,它非常有效: 正文/内容:
一些文本[1]
正文/参考文献:[1]:http://somelink.com/?target=_blank
只需确保首先传递目标属性,如果链接中有其他属性,请将它们复制/粘贴到引用URL的末尾
也可作为直接链接使用:[转到此页](http://somelink.com/?target=_blank)
一个全局解决方案是将
进入页面的
元素。这有效地为每个锚元素添加了一个默认目标。我使用markdown在基于Wordpress的网站上创建内容,我的主题定制器将允许我将代码注入到每个页面的顶部。如果你的主题没有做到这一点,那么就有一个所以,你不能将链接属性添加到一个降价URL中是不正确的。要添加属性,请检查正在使用的底层标记解析器及其扩展是什么
特别是,有一个要启用的扩展,它允许在链接中进行标记。e、 g
[Hello, world!](http://example.com/){target="_blank"}
- 对于来自R的用户(例如使用
、rmarkdown
、bookdown
等),这是您需要的语法李>blogdown
- 对于那些没有
[Hello, world!](http://example.com/){target="_blank"}
[link](http://example.com){:hreflang="de"}
# Pandoc { attribute1="value1" attribute2="value2"} # Kramdown {: attribute1="value1" attribute2="value2"} ^ ^ Colon