PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dem IE verbieten bei gedrücktem STRG den Link (in einem neuen Tab) zu öffnen


Gast
2009-11-09, 12:33:28
Hallo!

Ich habe mit jQuery einen click-Event an einige Links gebunden und möchte nun verhindern das der IE den Link öffnen, wenn man beim klicken auf den Link Strg gedrückt hat. Blöderweise führt der IE dann auch die Aktion des Eventhandlers nicht mehr aus, er öffnet einfach den Link in einem neuen Tab! Mit Shift statt Strg geht es aber Shift möchte ich schon für etwas anderes nutzen. Das soll nämlich eine Auswahl werden und wenn man nunmal einzelne Elemente auswählen möchte, drückt man Strg und bei mehreren in einer Reihe Shift. Daher möchte ich nicht die Tasten umbelegen.

Return false und aEvent.preventDefault() zeigen keine Wirkung.

p.s.
Es sollen Links sein, damit die Grundfunktionalität der Seite auch bei deaktiviertem JS funktioniert.

Gast
2009-11-09, 12:59:22
Nochmal ich ... also es geht zunächst um den IE7, wobei es beim IE8 sicher auch so ist. Mit Firefox funktioniert es anständig.

Ich bin eben noch auf http://www.webdeveloper.com/forum/showthread.php?t=150028 gestoßen. Dort meinte jemand man könne evtl. das href wegnehmen ... ich probier's mal.

Gast
2009-11-09, 17:15:52
Ich habe mit jQuery einen click-Event an einige Links gebunden und möchte nun verhindern das der IE den Link öffnen, wenn man beim klicken auf den Link Strg gedrückt hat.
Warum willst du das verhindern? Das was du vor hast ist in etwa genau so sinnvoll, wie das blödsinnige "Rechtsklick verbieten", das vor 10 Jahren mal in Mode war.

DanMan
2009-11-09, 17:51:59
Funktioniert der Link überhaupt ohne JS? Wenn nicht, wozu dann ein <a> Element? Verknüpfe den Event-Handler doch einfach mit irgendwas anderem. Lesen hilft...

Also wenns wirklich mit den üblichen Methoden (return false, event.preventDefault) nicht funktioniert, dann hast du wohl Pech gehabt. Obwohl die Idee das href-Attribut mit JS zur Laufzeit zu entfernen auch nicht schlecht klingt. Dass es dann je nach Doctype nicht mehr valide ist, steht ja schon in dem Thread.

Gast
2009-11-09, 18:03:17
Warum willst du das verhindern? Das was du vor hast ist in etwa genau so sinnvoll, wie das blödsinnige "Rechtsklick verbieten", das vor 10 Jahren mal in Mode war.
Ich habe meine Gründe (wie oben schon angedeutet) aber für dich gerne nochmal ausführlich. :rolleyes:

Diese Links sind Tabs. Klickt man einen Tab an, so wird der Inhalt mit jQuery angezeigt. Mit Strg+Klick soll man den Inhalt verschiedener Tabs anzeigen lassen können. Sehr blöd wenn da plötzlich beim IE ein neuer Tab aufgeht!
Ohne Javascript sind die Tabs simple Sprungmarken und der Inhalt der Tabs ist auf der ganzen Seite zu sehen. Siehst du jetzt ein wozu das dient und das es durchaus sinnvolle Anwendungsmöglichkeiten für solche Methoden gibt?

Funktioniert der Link überhaupt ohne JS? Wenn nicht, wozu dann ein <a> Element? Verknüpfe den Event-Handler doch einfach mit irgendwas anderem. Lesen hilft...

Also wenns wirklich mit den üblichen Methoden (return false, event.preventDefault) nicht funktioniert, dann hast du wohl Pech gehabt. Obwohl die Idee das href-Attribut mit JS zur Laufzeit zu entfernen auch nicht schlecht klingt. Dass es dann je nach Doctype nicht mehr valide ist, steht ja schon in dem Thread.
Also zur Laufzeit den Inhalt des href löschen (bzw. auf # setzen) hat funktioniert. :) Ich speichere mit den ursprünglichen Inhalt jetzt im Data-Object des jQuery-Events (http://docs.jquery.com/Events/jQuery.Event#event.data). Alles bleibt valides HTML. :)

DanMan
2009-11-09, 18:23:30
Also zur Laufzeit den Inhalt des href löschen (bzw. auf # setzen) hat funktioniert. :) Ich speichere mit den ursprünglichen Inhalt jetzt im Data-Object des jQuery-Events (http://docs.jquery.com/Events/jQuery.Event#event.data). Alles bleibt valides HTML. :)
Na dann is ja alles dufte. Interessante Lösung jedenfalls. :)