在<a>元素上使用e.preventDefault(),但只允许单击指向外部文档的链接,可以通过以下方式实现:
以下是一个示例代码:
document.querySelector('a').addEventListener('click', function(e) {
e.preventDefault(); // 阻止<a>元素的默认行为
var targetUrl = this.href; // 获取链接的目标地址
// 判断链接是否指向外部文档
if (targetUrl.match(/^https?:\/\//i) || new URL(targetUrl).protocol.match(/^https?:$/i)) {
window.location.href = targetUrl; // 跳转到链接的目标地址
}
});
这样,当点击<a>元素时,如果链接指向外部文档,则会跳转到该链接的目标地址;如果链接指向当前页面或其他内部文档,则不会进行页面跳转。
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云