内部或外部链接

时间:2014-11-23 04:35:26

标签: javascript html

我的链接有一个小问题。我试图在检查链接时使用它,它使用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。

有人有任何想法吗?

1 个答案:

答案 0 :(得分:0)

通过将点击事件.hostnamelocation.hostname进行比较,您可以轻松检查链接是否仍然是本地的。

在下面的代码中,我将.click事件应用于类link:意味着许多元素可以使用link类包含在事件处理中。

我个人觉得最好使用这种方法,因为它不需要更改主HTML文档。话虽这么说,你总是可以使用onclick="function()"并获得相同的结果。

&#13;
&#13;
 $(".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;
&#13;
&#13;