Zurück   klamm-Forum > klamm.de > klamm talk > Verbesserungsvorschläge

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28.05.2009, 18:51:34   #1 (permalink)
Lose 2.0 –
das zweite Zeitalter
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 22.650
Standard Messenger: Betreff-Link ordentlich verlinken

Nervt mich schon länger:
Seit Umgestaltung des Messengers kann man eine Nachricht nicht mehr normal öffnen, da der Link im Betreff nur auf "#" verweist.
NEU OpenIsles - das freie Insel-Aufbauspiel NEU

www.theHacker.ws v3 | WhatPulse-Team
Bezahlte Startseite
- mehr Verdienst als auf klamm - viele Auszahlungen erhalten
theHacker ist offline   Mit Zitat antworten
Alt 29.05.2009, 18:54:07   #2 (permalink)
Administrator
Benutzerbild von klamm

ID: 20876
Lose-Remote

Reg: 20.04.2006
Beiträge: 11.015
Standard

Du meinst in einem neuen Fenster?
Das geht nicht weil das alles über die JS-Engine redirected ...

Wenn ich den Link jetzt auch noch verlinke (die Tabel hat schon ein onClick) dann springt der Link UND das onClick der Table an und man hat nen Doppel-redirect. Hab bisher keine Lösung gefunden das zu beheben.

HTML-Code:
1:
2:
3:
<td class="betreff" onClick="javascript:readmsg('2096381');"> <a href="#" class="msg" title="Re^2: bild im forum">Re^2: bild im forum</a> </td>
Gesucht: if(link_klicked)
ignore_onlick_events_von übergeordneten_elementen()

Edit: Das Problem ist, dass nicht dterministisch vorhersagbar ist, ob HREF oder OnClick zuerst ausgeführt wird. Je nach Browser und gut Dünken.
 
klamm ist offline   Mit Zitat antworten
Alt 29.05.2009, 20:16:35   #3 (permalink)
Erfahrener Benutzer

ID: 296438
Lose-Remote

paddya eine Nachricht über ICQ schicken paddya eine Nachricht über MSN schicken
Reg: 04.09.2007
Beiträge: 529
Standard

Zitat:
Zitat von klamm Beitrag anzeigen
Edit: Das Problem ist, dass nicht dterministisch vorhersagbar ist, ob HREF oder OnClick zuerst ausgeführt wird. Je nach Browser und gut Dünken.
return false; am Ende deines JavaScript-Codes. Und das click-Event des Links muss per Definition eigentlich vor dem "href" ausgeführt werden. Denn der Seitenwechsel des Browsers wird ja genaugenommen auch "onclick" ausgeführt. Und dann hangelt sich der Browser im DOM nach oben und prüft, ob noch click-Events irgendwo gesetzt sind.

Also: a->onclick, a->href, td->onclick (rein theoretisch).

Um das Event-Bubbling zu verhindern gibt es auch eine Funktion: e.stopPropagation().

Greetz

paddya
 

Geändert von paddya (29.05.2009 um 20:25:46 Uhr) Grund: Kleine Ergänzung.
paddya ist offline   Mit Zitat antworten
Alt 30.05.2009, 11:51:33   #4 (permalink)
Administrator
Benutzerbild von klamm

ID: 20876
Lose-Remote

Reg: 20.04.2006
Beiträge: 11.015
Standard

Zitat:
Zitat von paddya Beitrag anzeigen
return false; am Ende deines JavaScript-Codes.
Korrigier mich, aber ein return false; wirkt doch nur am Ende der Ausführung des JS vorher ... ich möchte ja überhaupt nicht, dass JS ausgeführt wird. In dem Link an sich hab ich auch kein onClick-Event. Ich klick auf HREF und damit sollte das onClick der Table-Cell igoriert werden, da ja bereits eine Weiterleitung erfolgt.

Oder meinst Du ein OnClick = return false, in den Link, sodass das vor dem HREF ausgeführt wird und die JS engine sozusagen "stoppt", sodass der Onclick der Table gar nicht mehr ausgeführt wird?

 
klamm ist offline   Mit Zitat antworten
Alt 30.05.2009, 11:55:43   #5 (permalink)
Moderator

Reg: 20.04.2006
Beiträge: 5.061
Standard

Das was ich dir gestern im ICQ vorgeschlagen hatte geht übrigens doch - es werden nicht alle onClicks gleichzeitig ausgeführt (wie auch ), sondern das innerste zuerst:

HTML-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
<script> var disable_foo = false; function muh(){ disable_foo = true; alert("muh()"); } function foo(){ if(disable_foo == false){ alert("foo()"); } } </script> <table> <tr><td onclick="javascript:foo();"><a href="a.html" onclick="javascript:muh()">dsgsgd</a></td></tr> </table>
Ergebnis hier: Es wird nur muh() in einer Alert ausgegeben, dann gehts zu a.html
 
raven ist offline   Mit Zitat antworten
Alt 30.05.2009, 12:03:22   #6 (permalink)
Administrator
Benutzerbild von klamm

ID: 20876
Lose-Remote

Reg: 20.04.2006
Beiträge: 11.015
Standard

Zitat:
Zitat von raven Beitrag anzeigen
HTML-Code:
1:
2:
3:
4:
5:
<script> var disable_foo = false; function muh(){ disable_foo = true; alert("muh()"); } function foo(){ if(disable_foo == false){ alert("foo()"); } } </script>
Ah ok wenn der innere tatsächlich zuerst kommt, dann deckt sich ja dann mit meiner "Idee" ...
Zitat:
Oder meinst Du ein OnClick = return false, in den Link, sodass das vor dem HREF ausgeführt wird und die JS engine sozusagen "stoppt", sodass der Onclick der Table gar nicht mehr ausgeführt wird?
 
klamm ist offline   Mit Zitat antworten
Alt 30.05.2009, 12:05:03   #7 (permalink)
Moderator

Reg: 20.04.2006
Beiträge: 5.061
Standard

Zitat:
Zitat von klamm Beitrag anzeigen
Ah ok wenn der innere tatsächlich zuerst kommt
Zumindest in IE/FF/Chrome ... ich nehme aber an, wenn das dort einheitlich ist, wird das wohl allgemein so sein - Opera habe ich allerdings nicht zum Testen drauf.
 
raven ist offline   Mit Zitat antworten
Alt 30.05.2009, 14:21:02   #8 (permalink)
Erfahrener Benutzer

ID: 296438
Lose-Remote

paddya eine Nachricht über ICQ schicken paddya eine Nachricht über MSN schicken
Reg: 04.09.2007
Beiträge: 529
Standard

Zitat:
Zitat von raven Beitrag anzeigen
Zumindest in IE/FF/Chrome ... ich nehme aber an, wenn das dort einheitlich ist, wird das wohl allgemein so sein - Opera habe ich allerdings nicht zum Testen drauf.
Das ist sogar ein Standard, wenn mich nicht alles täuscht.

PHP-Code:
1:
2:
3:
4:
5:
    function stopEvents(event) {
        
event.cancelBubble true;
        if(
event.stopPropagation)        
            
event.stopPropagation();
    } 
und dann einfach:

HTML-Code:
1:
2:
3:
<table> <tr><td onclick="javascript:foo();"><a href="a.html" onclick="stopEvents(event); return true;">dsgsgd</a></td></tr> </table>
Sollte funktionieren und wäre auch die sauberere Lösung

Edit: Das mit dem return false; am Ende des JavaScripts war natürlich Blödsinn

Greetz

paddya
 

Geändert von paddya (30.05.2009 um 14:26:32 Uhr)
paddya ist offline   Mit Zitat antworten
Antwort

Stichworte
betreff, link, messenger, portal, verlinken

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
"Link einfügen" Klamm Messenger funktioniert nicht back4ever Bug-Report 22 29.03.2009 16:53:52
Text in Signatur mit Link verlinken smokeking89 Ich bin neu hier und habe eine Frage! 3 27.08.2008 19:51:13
[V] Deine Werbung (Link) als Betreff meiner Loseverschenkungen PankowBoy Lose4Werbung 16 14.03.2007 14:25:10


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:52:17 Uhr.