gpt4 book ai didi

javascript 测试 URL 是相对的还是绝对的,而不是 mailto :

转载 作者:行者123 更新时间:2023-11-30 08:56:55 25 4
gpt4 key购买 nike

我有带有按钮/链接/电子邮件和 mailto: 的表格,并编写了一个默认的双击功能,双击该行会将用户定向到表格中的最后一个链接。

99% 的表格的最后一列都有“编辑”按钮。

$('table:not(.noDoubleClick) tr td').dblclick(function() {
var linkEl = $(this).parents('tr').find('td:last-child a');

if(!linkEl.length){
return false;
}

if (linkEl.attr('href') && linkEl.attr('onclick') === undefined && !linkEl.hasClass("popme")) {
document.location = linkEl.attr('href');
} else {
linkEl.click();
}
});

这工作正常,直到我有一个罕见的表,其中最后一列是带有 mailto 的电子邮件地址。

问: 我如何检查 href 是否只是相对/绝对链接。这样就可以排除 mailto: 和任何其他非标准 URL 的链接。

我知道我可以做这样的事情:linkEl.attr('href').substring(0, 7) == "mailto:" 来专门测试 mailto 但有没有更好的无需针对要排除的不同协议(protocol)进行大量 IF 测试的方法。

使用来自@epascarello 的工作解决方案进行更新:

$('table:not(.noDoubleClick) tr td').dblclick(function(e) {
var linkEl = $(this).parents('tr').find('td:last-child a');
var linkElHref = linkEl.attr('href');

// Check if has href and http protocol
if(!linkElHref.length || this.protocol.indexOf("http") !== 0){
e.preventDefault();
return false;
}

if (linkElHref && linkEl.attr('onclick') === undefined && !linkEl.hasClass("popme")) {
document.location = linkElHref;
} else {
linkEl.click();
}
});

最佳答案

您可以使用链接的属性查找协议(protocol)。

var theProtocol = linkEl.prop("protocol");
var isHttp = linkEl.prop("protocol").indexOf("http") === 0;

关于javascript 测试 URL 是相对的还是绝对的,而不是 mailto :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12840172/

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