繁体   English   中英

基本目标语句中不包括tel和mailto

[英]Excluding tel and mailto in base target statement

根据客户的要求,我们强制所有外部链接在新选项卡中打开。 目前,我正在为此使用js脚本。

但是,这也迫使tel和mailto链接也要打开新选项卡。 我认为这就是为什么当您单击并发送电子邮件链接时,在某些设备上出现错误的原因,其中一个弹出框显示“此网站已被禁止自动撰写电子邮件”-在iPhone 6上专门发现了该电子邮件。

如何强制外部链接-但不包括邮件和电话链接? 非常感谢您的协助。

这是我当前正在使用的外部链接脚本。 我以为也许我可以做些改动,只查找带有“ http”但带有tel和mailto的else语句的外部链接。 但是我不确定该怎么做。

jQuery(document).ready(function($) {
    $('a').each(function() {
        var a = new RegExp('/' + window.location.host + '/');
        if(!a.test(this.href)) {
            $(this).click(function(event) {
                event.preventDefault();
                event.stopPropagation();
                window.open(this.href, '_blank');
            });
        }
    });
});

结合我的评论,我将选择检查每个锚点的href属性,并检查它是否不以mailto:tel:开头(并且外部链接根本不起作用,我想这是由代码段环境引起)

 jQuery(document).ready(function($) { $('a').each(function() { var a = new RegExp('/' + window.location.host + '/'); if(!a.test(this.href) && this.href.substr(0,4)!='tel:' && this.href.substr(0,7)!='mailto:') { $(this).attr('target', '_blank'); } }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <a href="http://www.google.com">website</a>, <a href="mailto:someone@somewhere.com">e-mail</a> and <a href="tel:123456789">phone</a>. 

我必须承认,检查您可能想排除的所有协议并不是理想的选择,但绝对比检查您希望在新窗口/选项卡中打开的所有内容容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM