Javascript 内部或外部链接

Javascript 内部或外部链接,javascript,html,Javascript,Html,我的链接有一个小问题。我试图让它这样,当一个链接被检查,它使用javascript来处理页面加载,这是好的,但在它加载页面之前,我希望它采取它传递给javascript的URL,并检查它是否是外部的,如果是,然后通知他们,否则继续。。。以下是我目前掌握的代码: JavaScript文档: function loadPage(page, tag, ext) { if (tag) { fadeOut(tag); setTimeout(function() {

我的链接有一个小问题。我试图让它这样,当一个链接被检查,它使用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>
GitHub
我在这里尝试了其他结果,但它们都检查了href属性,我需要检查传递给函数的URL,如果函数是外部的,则返回true


有人有什么想法吗?

通过比较单击事件的
.hostname
位置。hostname
可以轻松检查链接是否仍然是本地链接

在下面的代码中,我将应用一个
。单击
事件到类
链接
:这意味着许多元素可以使用
链接
类来包括在事件处理中

我个人认为最好使用这种方法,因为它不需要更改主HTML文档。也就是说,您可以始终使用
onclick=“function()”
并获得相同的结果

$(“.link”)。单击(
职能(e){
if(e.target.hostname==location.hostname){
console.log(“转到本地”)
返回true;
}否则(确认(“您是否同意离开本网站?”){
控制台日志(“离开网站”);
返回true;
}否则{
console.log(“留在这里”);
返回false;
}
});


什么是淡出(tag)?这是一个淡出使用jQuery指定的标记的函数,因此我基本上会将body标记传递给它,使其淡出:我的网站是您可以看到这一效果的地方。为什么-1?我做错什么了吗?嗯,在我当前的代码中,我使用了一个onclick事件,它传递页面的URL,我如何检查它是否是外部的。。。它是这样的:
函数checkExternal(url){if(url.target.hostname==location.hostname){console.log(“转到本地”)返回true;}else if(确认(“你愿意离开这个网站吗?”){console.log(“离开网站”);返回true;}else{console.log(“留在这里”);返回false;}})
然后从主问题中的函数调用它-顺便说一句,第二个链接也要求确认,即使它是本地的……如果你想手动传入url,你需要一个看起来很难看的正则表达式来解析主机名。事件处理程序会自动执行此操作,从而创建
target.hostname
,因此这是使用Jquery xp的另一个原因。这里的第二个答案解释了如果您确实不想使用Jquery,如何解析url:我删除了第二个链接:我忘了代码片段实际上并不托管在stackoverflow.com上。