Shift +单击Firefox中的Linkbutton打开新窗口,而不是触发OnClick

时间:2010-03-02 20:04:29

标签: c# firefox click linkbutton shift

我用C#建立了一个照片库。用户可以按住shift并单击以一次选择多张照片。我使用System.Windows.Forms.Control.ModifierKeys属性来确定是否在链接按钮的OnClick事件中按下了shift,但发现它仅适用于IE。在Firefox中,Shift + Click打开一个新窗口,似乎绕过按钮的OnClick事件。通过这个获得什么是一个很好的解决方案?

1 个答案:

答案 0 :(得分:2)

您需要利用javascript拦截点击并阻止默认操作。我建议看看JQuery这样做。

我实际上在反方向上做了类似的事情,我使用H1标签的img替换方法使它们可链接,并允许他们转移点击图像并启动新窗口。

这是半编码自由流,因此可能需要一些调整,但它类似于

<script language="javascript" type="text/javascript">
    $(document).ready(function() {
        $('img.selectable').mouseup(function(e) {

            if (e.ctrlKey || (!$.browser.msie && e.button == 1) 
                            || ($.browser.msie && e.button == 4)) {

                //middle mouse button or ctrl+click 
                //(need to lookup values for shift)
                //do something meaningful

            }
            else {
                //normal left click

            }
        })
        .click(function(e) { e.preventDefault(); });
    });                   
</script>