我的链接有一个小问题。我试图在检查链接时使用它,它使用javascript来处理页面加载,这很好,但在加载页面之前我希望它将传递给JavaScript的URL并检查它是否是外部的,如果它是,然后提醒他们,其他只是继续...继续我到目前为止的代码:
JavaScript文档:
function loadPage(page, tag, ext) {
if (tag) {
fadeOut(tag);
setTimeout(function() {
if (page) {
console.log('Attempting To Buffer Next Page...');
} else {
console.log('ERROR: No Page To Buffer');
return;
}
if (ext) {
console.log('Loading Custom Extension');
if (checkExternal(page) == true) {
window.location = "external.php?url="+page+"."+ext
}
else {
window.location = page+"."+ext
};
} else {
console.log("No Custom Extension, Using .hmtl");
if (checkExternal(page) == true) {
window.location = "external.php?url="+page+".html"
} else {
window.location = page+".html"
};
}
}, 500);
}
else
{
console.log("ERROR: Tag Field Empty, Cannot Load Page")
};
};
Html链接:
<a onclick="loadPage('https://github.com/hbomb79/securitySystemPro/issues', 'body');" class="url">GitHub</a>
我在这里尝试了其他结果,但是他们都检查了href属性,我需要检查传递给函数的URL,如果它是外部的,则返回true。
有人有任何想法吗?
答案 0 :(得分:0)
通过将点击事件.hostname
与location.hostname
进行比较,您可以轻松检查链接是否仍然是本地的。
在下面的代码中,我将.click
事件应用于类link
:意味着许多元素可以使用link
类包含在事件处理中。
我个人觉得最好使用这种方法,因为它不需要更改主HTML文档。话虽这么说,你总是可以使用onclick="function()"
并获得相同的结果。
$(".link").click(
function(e) {
if (e.target.hostname === location.hostname) {
console.log("going local")
return true;
} else if (confirm("Do you with to leave this website?")) {
console.log("Leaving Website");
return true;
} else {
console.log("Staying here");
return false;
}
});
&#13;
<!DOCTYPE html>
<html lang="en">
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<a class="link" href="http://somewebsite.com"> somewebsite.com </a>
<a class="link" href="#"> # (local) </a>
</body>
</html>
&#13;