3

<header>我想用一些简单的代码强制我网站上的所有传出链接在新选项卡中打开。我知道您可以使用标签中的以下代码强制所有链接在新标签中打开<header>

<base target='_blank' />

但我只想定位传出链接(以便不会在新选项卡中打开指向我网站上另一个页面的链接)。无论如何要这样做?我觉得应该有...

4

1 回答 1

4

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

我在我的网站上使用了 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 调用、用户交互后等)

于 2013-04-07T03:04:35.413 回答