使用HTML / CSS / Javascript打开新页面中的链接

时间:2011-03-30 19:25:15

标签: javascript html css

我有一个div,在我的网站上有多个页面。我不想将每一个专门设置为在新窗口中打开,而是希望特定div中的所有链接在新窗口中打开。我怎么能用HTML / CSS / javascript做到这一点?

由于

5 个答案:

答案 0 :(得分:2)

这是你如何用jQuery做到这一点

如果您有类似<div class="myLinks">...</div>

的内容
$('.myLinks a').attr("target", "_blank");

答案 1 :(得分:2)

好吧,我猜有两种合理的方法可以在新窗口中从锚点打开 href

  • 修改node并将其target设置为_blank<a href="foo" target="_blank"></a>
  • 使用Javascript捕获点击事件,阻止默认行为并致电window.open()

    var anchors = document.querySelectorAll('#mydiv a');
    [].forEach.call(anchors, function(anchor) { 
        anchor.addEventListener('click', function(e) { 
            window.open(e.target.href, 'mywindow', '_blank');
    
            e.preventDefault();
            e.stopPropagation();
        }, false);
    });
    

该示例代码是vanilla Javascript,它只能在兼容W3C的浏览器(!= IE)中使用。
如果您能够负担得起使用JS框架,那么实时更容易,因为所有这些都会为您抽象浏览器差异。

答案 2 :(得分:1)

我认为你在某些页面中有这样的div和链接:

<div id="myDiv">
    <a href="Link Url">Link Text</a>
    <!--some other elements-->
</div>

您需要创建一个像bellow一样的js文件并将其添加到所有页面的末尾:

var div = document.getElementById("myDiv");
if (div) {
    for (var i = 0; i < div.childNodes.length; i++)
    {
        if (div.childNodes[i].nodeName.toLowerCase() == "a")
            div.childNodes[i].target = "_blank";
    }
}

以及你需要做的一切! 这段代码足够快,甚至不需要JQuery。

答案 3 :(得分:0)

您可以使用javascript和jQuery。

首先,我建议DIV标识为outgoing

<div id='outgoing'>
    <a href='http://google.com'>Go to Google</a><br>
    <a href='http://stackoverflow.com'>Look at SO!</a>
</div>

现在我们可以使用简单的JavaScript动态地将target='blank'添加到这些链接中:

$(function() {
    $('#outgoing a').attr('target', '_blank');
});

You can check example here

答案 4 :(得分:0)

你不能使用jQuery迭代指定div中的所有链接,然后将目标设置为“_blank”。