如何阻止 Firefox 在按住 Ctrl 键的情况下在新选项卡中打开 gridview 标头排序回发链接

2024-04-28

我试图让 ASP.Net 中的 gridview 控件根据用户在尝试通过单击列名称进行排序时是否按下 Ctrl 键进行多重排序。问题是,当我使用 Firefox 时,如果我按下 Ctrl 键单击列名称,浏览器会尝试在新选项卡中打开“javascript:__doPostBack('ctl00$ContentPla...”链接。IE 和 Chrome 均如此除非链接是真实链接,否则不要这样做。

有没有办法可以阻止 Firefox 在新选项卡中打开链接并仍然使页面正常回发?

Thanks.


您需要使用 document.onKeyDown 捕获按下 Ctrl 键的事件。

在事件处理程序中,检查是否按下了“Ctrl”(键代码 17),如下所示:

function document_keyDown(e) {
    var KeyID = (window.event) ? event.keyCode : e.keyCode;
        if (KeyID == 17) { 
            ctrlDown = true;
        }
}

在这里,我将“ctrlDown”变量设置为 true。

对于 onKeyUp 事件,您可以执行完全相反的操作:

function document_keyUp(e) {
    var KeyID = (window.event) ? event.keyCode : e.keyCode;
    if (KeyID == 17) { 
       ctrlDown = false;
    }
}

然后,在列元素的单击事件中,您可以检查是否已单击 Ctrl:

function columnElement_click() {
    if (ctrlDown != undefined && ctrlDown == true)
        alert("Ctrl + Click Received");
    return false;
}

确保您的列点击处理程序返回假。否则,浏览器将执行代码,然后导航到链接的“href”属性中的地址。

希望这可以帮助。

(也可以看看:http://www.geekpedia.com/tutorial138_Get-key-press-event-using-JavaScript.html http://www.geekpedia.com/tutorial138_Get-key-press-event-using-JavaScript.html)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何阻止 Firefox 在按住 Ctrl 键的情况下在新选项卡中打开 gridview 标头排序回发链接 的相关文章

随机推荐