JavaScript如何在检测当前域的变量中包含哈希
JavaScript how to include hash in variable that detects current domain?
我的目标是检测href点击,并在链接是外部链接时采取措施。我有以下JavaScript来检测外部链接:
var isThisDomain = href.match(document.domain.split('.').reverse()[1] + '.' + document.domain.split('.').reverse()[0]);
如果检测到外部链接,我会使用以下方法:
else if (href != isThisDomain) {
// do something for external links
}
这适用于外部链接,但也适用于带有#的内部链接。例如,如果我的网站是www.example.com,如果href是www.example.com/#anchor或www.example.com/category/#anotheranchor.,我不希望它被激发
如何更改isThisDomain以满足此哈希?
您是否尝试过使用document.location.hostname(只获取URL的主机名部分,不包括其他所有内容)并将其与现有URL进行比较?
如果要对页面上的每个链接执行此操作,则需要在所有检查host
属性的链接上设置EventListener
。如果它是外部的,你需要做什么就做什么。它看起来像这样:
function checkHref(e) {
var url = e.target.href,
externalUrl = e.target.host !== document.location.hostname;
if (externalUrl) {
console.log(e); // Place your logic here.
}
e.preventDefault();
}
var links = document.getElementsByTagName('a'),
i;
// Loop through all anchor elements and add an EventListener
for (i = 0; i < links.length; i++) {
var el = links[i];
el.addEventListener('click', checkHref, false);
}
相关文章:
- Javascript变量包含特殊字符
- 如何使用JavaScript获取包含哈希片段的先前url
- Javascript:一个变量包含值,但Firebug说它是空的
- PHP 变量包含 HTML 和 JavaScript.通过JavaScript将其注入HTML不起作用
- 如何在初始化新数组时使用变量(包含数组形式的文本)
- 在客户端上从 Meteor.call 获取未定义,但在服务器上变量包含数据
- jQuery 变量包含 “ 和 '
- 使用Chrome Devtools查找哪个变量包含一个值
- 变量包含值,但在操作中它们等于NULL
- Pull包含哈希标记的完整URL参数
- 检查是否有多个变量包含null
- 根据变量包含svg代码
- 如果URL在初始页面加载时包含哈希
- 解析数据从js变量包含html
- 如何防止链时,添加javascript变量包含数字
- Javascript字符串计算从PHP变量包含数学表达式(但实际上是一个日期)
- 快速查找Javascript变量(PollDaddy哈希)
- 如果变量包含两个单词,则删除并替换它
- 如何正确地添加搜索查询参数,以url包含哈希在javascript
- JavaScript如何在检测当前域的变量中包含哈希