如何仅定位HTML中的传出链接

时间:2013-04-07 02:44:35

标签: html

我想强制在我的网站上的所有外发链接在包含一些简单<header>代码的新标签页中打开。我知道您可以强制所有链接在<header>标记中使用此代码在新标签中打开:

<base target='_blank' />

但我只想定位外向链接(这样我的网站上另一个页面的链接就不会在新标签中打开)。无论如何要做到这一点?我觉得必须有......

1 个答案:

答案 0 :(得分:4)

我在我的网站上使用Javascript做到了这一点。我发现在页面加载时更容易解析我的所有链接,并以编程方式添加_blank目标,而不是手动将属性添加到链接。 (奖励:篡改JS中的target属性可以让你的代码validate

我在我的网站上使用了JQuery,但逻辑很简单:

$(document).ready(function()
{
    parseLinks();
});

function parseLinks()
{
    // Manage external links
    $("a").each(function()
    {
        if ($(this).attr("href").indexOf("://") >= 0)
        {
            $(this).attr("target", "_blank");
        }
    });
}

如果您不想使用JQuery:

window.onload = function()
{
    parseLinks();
};

function parseLinks()
{
    // Manage external links
    var Links = document.getElementsByTagName("a");
    for (var i = 0; i < Links.length; i++)
    {
        if (Links[i].href.indexOf("://") >= 0)
        {
            Links[i].target = "_blank";
        }
    }
}

我把它放在一个函数中,这样你就可以在需要重新运行代码时调用parseLinks(AJAX调用,用户交互后等)。