Shift + Click кнопки Link в Firefox открывает новое окно вместо запуска OnClick

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


person Callie    schedule 02.03.2010    source источник


Ответы (1)


Вам нужно будет воспользоваться 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>
person Chris Marisic    schedule 02.03.2010