Ajax链接也可以在新标签中打开? (像Facebook)

时间:2011-12-28 01:57:32

标签: javascript html ajax

如果我只是点击大多数Facebook链接,它将使用ajax加载到同一页面上,但如果我中/按住它,它将被加载到新标签中。

我已经完成了一半但它不能完全正常工作,[编辑]中键点击并右键单击>打开新标签页打开是新选项卡,但按住Ctrl键单击调用点击[/编辑]。知道如何正确地做到这一点吗?

<a href="/link/location" onclick="doAjax(); return false;">link</a>

1 个答案:

答案 0 :(得分:3)

不是总是直接在(内联)onclick中返回false,而是要返回函数的结果,然后在函数测试中是否使用了控制键:

<a href="/link/location" onclick="return doAjax(event);">link</a>

<script>
function doAjax(e) {
    if (!e) e = window.event;

    if (!e.ctrlKey) {
        alert("Ajax code here");
        return false;
    }
}
</script>

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

有关鼠标事件的事件对象属性的更多信息:https://developer.mozilla.org/en/DOM/MouseEvent

(顺便说一句,对于内联事件处理程序,你不应该需要if (!e)位,但是我有点习惯于编写它,因为我不倾向于使用内联事件处理程序。)< / p>