gpt4 book ai didi

javascript - 在基本目标语句中排除 tel 和 mailto

转载 作者:行者123 更新时间:2023-12-03 02:40:27 25 4
gpt4 key购买 nike

根据客户请求,我们强制所有外部链接在新选项卡中打开。目前我正在使用 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');
});
}
});
});

最佳答案

结合我的评论,我会选择检查每个 anchor 的 href 属性,并检查它是否不以 mailto:电话::(并且外部链接根本不起作用,我猜这是由片段环境引起的)

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>.

我必须承认,检查您可能想要排除的所有协议(protocol)并不理想,但这绝对比检查您想要在新窗口/选项卡中打开的所有协议(protocol)更容易。

关于javascript - 在基本目标语句中排除 tel 和 mailto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48343665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com