Shift + клик по кнопке LinkButton в Firefox открывает новое окно вместо запуска OnClick - PullRequest
1 голос
/ 02 марта 2010

Я использовал C # для создания галереи фотографий. Пользователи могут удерживать клавишу Shift и щелкнуть мышью, чтобы выбрать несколько фотографий одновременно. Я использовал свойство System.Windows.Forms.Control.ModifierKeys, чтобы определить, нажимается ли shift в событии OnClick кнопки ссылки, но я обнаружил, что оно работает только в IE. В Firefox Shift + Click открывает новое окно и появляется, чтобы обойти событие OnClick кнопки. Какое хорошее решение для этого?

1 Ответ

2 голосов
/ 02 марта 2010

Вам необходимо воспользоваться преимуществами JavaScript, чтобы перехватить щелчок и предотвратить действие по умолчанию. Я бы порекомендовал посмотреть на JQuery для этого.

Я фактически сделал нечто подобное в обратном направлении, где я использую методологию замены img для тегов H1, чтобы сделать их связанными и позволить им смещать щелчок по изображению и запускать новое окно.

Это наполовину закодированный свободный поток, поэтому может потребоваться некоторая подстройка, но он будет похож на

<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>
...