我目前在一家具有以下环境的公司工作:
现在,在我的控制范围内,每台服务器上实际上都有成千上万的页面(它们非常庞大),而且如果绝对定义的链接很多。即使我可以在下一次代码刷新时在代码中修复它们,也可以将它们全部恢复。
因此,我正在尝试构建一个Chrome扩展程序,该扩展程序将允许我检测链接何时将我带出了环境。因为我受够了良心,没有意识到。
目前我有这个:
function currentURL() {
var result = {};
var regexParse = new RegExp('([a-z\-0-9]{2,63})\.([a-z\.]{2,5})$');
var urlParts = regexParse.exec(window.location.hostname);
result.domain = urlParts[1];
result.type = urlParts[2];
result.subdomain = window.location.hostname.replace(result.domain + '.' + result.type, '').slice(0, -1);;
return result.subdomain;
}
function nextURL(url) {
var result = {};
var regexParse = new RegExp('([a-z\-0-9]{2,63})\.([a-z\.]{2,5})$');
var urlParts = regexParse.exec(url);
result.domain = urlParts[1];
result.type = urlParts[2];
result.subdomain = window.location.hostname.replace(result.domain + '.' + result.type, '').slice(0, -1);;
return result.subdomain;
}
,我得到了URL的href
属性,并与当前URL进行了比较。
我的问题是这个。有时,传递过来的链接网址很简单:
/下一页
或者出站链接可能是:
// newexample.com
因此,如您所见,下一个URL可能会有一些变化。
JavaScript不是我最擅长的技能,所以我问你们:检查我单击的链接不是外部的最佳方法是什么?
答案 0 :(得分:1)
然后我获得了网址的href属性,并与当前网址进行了比较...
请勿使用href
属性,而应使用href
属性。 href
属性是一个完全解析的URL(通常可以完全解析该URL)。
例如,如果您将HTMLAnchorElement
(a
元素的对象)引用为link
,请使用:
var url = link.href;
不是
var url = link.getAttribute("href");
这是区别的一个例子:
var link = document.querySelector("a[href]");
console.log("property: " + link.href);
console.log("attribute: " + link.getAttribute("href"));
Stack Snippets run in the domain <code>https://stacksnippets.net</code>. <a href="//stackoverflow.com">This link</a> is a protocol-relative link to Stack Overflow.