1

C# を使用して、写真のギャラリーを作成しました。Shift キーを押しながらクリックすると、一度に複数の写真を選択できます。System.Windows.Forms.Control.ModifierKeys プロパティを使用して、リンク ボタンの OnClick イベントでシフトが押されているかどうかを判断しましたが、IE でしか機能しないことがわかりました。Firefox では、Shift + クリックで新しいウィンドウが開き、ボタンの OnClick イベントをバイパスしているように見えます。これを乗り越えるための良い解決策は何ですか?

4

1 に答える 1

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>
于 2010-03-02T20:43:51.463 に答える