Test if links are external with jQuery / javascript?

后端 未结 13 1332
囚心锁ツ
囚心锁ツ 2020-11-28 05:00

How do I test to see if links are external or internal? Please note:

  1. I cannot hard code the local domain.
  2. I cannot test for \"http\". I could just as
相关标签:
13条回答
  • 2020-11-28 05:53

    I know this post is old but it still shows at the top of results so I wanted to offer another approach. I see all the regex checks on an anchor element, but why not just use window.location.host and check against the element's host property?

    function link_is_external(link_element) {
        return (link_element.host !== window.location.host);
    }
    

    With jQuery:

    $('a').each(function() {
        if (link_is_external(this)) {
            // External
        }
    });
    

    and with plain javascript:

    var links = document.getElementsByTagName('a');
    for (var i = 0; i < links.length; i++) {
        if (link_is_external(links[i])) {
            // External
        }
    }
    
    0 讨论(0)
提交回复
热议问题