Javascript链接,可以在新的选项卡/窗口中打开

Javascript link with the ability to open in new tab/window

本文关键字:窗口 选项 链接 Javascript      更新时间:2023-09-26

我正在尝试获得一个链接,该链接将在当前页面中打开,或者当单击命令/ctrl时(等等)将根据用户设置在新的选项卡/窗口中打开。现在我用的是这样的东西:

<a href='http://example.com' onclick="setTimeout(function() {window.location='/some_local_page'}, 10); return false;">Foo!</a>

这允许我点击链接并打开本地页面,但我必须明确地右键点击并选择在新选项卡/窗口中打开。我很确定这是一个已经解决的问题,但我找不到google/stackoverflow关键字的正确组合。:)

这可能有助于澄清:

<a href='http://example.com' onclick="some_javascript_function(); return false;">Foo!</a>

在这种情况下,单击应调用some_javascript_function(),并打开命令/ctrl click"http://example.com",并且对当前页面不做任何操作。

这就是您想要的吗?

<a href="http://example.com" onclick="window.open('/some_local_page')">Foo!</a>

还是这个?

<a href="/some_local_page" target="_blank">Foo!</a>

编辑:单击中央或左侧按钮(但不单击右侧按钮)时,onclick将启动。

因此,在onclick中,您需要检测ctrl是否被按下,或者它是否是中间按钮。

我还建议不要将JavaScript内联。试试这个:

<a href="http://example.com" class="link" data-link="/some_local_page">Foo!</a>​
$('a.link').click(function(e){
    if(e.button === 0 && !e.ctrlKey){ // Click without ctrl
        e.preventDefault();
        // open local page
        window.location = $(this).data('link');
    }
    // Middle click and ctrl click will do nothing,
    // thus allowing the brower to open in a new window
});​

演示:http://jsfiddle.net/E8hEt/

如果您想转到相同的url,为什么不在其href属性中呈现相同的url?。要在新窗口中打开它,请将目标设置为_blank

<a href='/some_local_page' target='_blank'>Foo!</a>