2010-03-02 21 views
1

J'ai utilisé C# pour construire une galerie de photos. Les utilisateurs peuvent maintenir la touche Maj enfoncée et cliquer pour sélectionner plusieurs photos à la fois. J'ai utilisé la propriété System.Windows.Forms.Control.ModifierKeys pour déterminer si le décalage est en cours de compression dans l'événement OnClick d'un bouton de lien, mais trouve qu'il ne fonctionne que dans IE. Dans Firefox, Maj + clic ouvre une nouvelle fenêtre et semble ignorer l'événement OnClick du bouton. Quelle est une bonne solution pour obtenir par cela?Maj + clic de Linkbutton dans Firefox ouvre une nouvelle fenêtre au lieu de tirer OnClick

Répondre

2

Vous devez utiliser javascript pour intercepter le clic et empêcher l'action par défaut. Je recommanderais de regarder JQuery pour ce faire.

J'ai fait quelque chose de similaire dans la direction inverse où j'utilise la méthodologie de remplacement img pour les balises H1 pour les rendre liables et leur permettre de cliquer sur l'image et de lancer la nouvelle fenêtre.

C'est la moitié codée libre circulation de sorte qu'il pourrait prendre un peu de peaufinage, mais il serait semblable à

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