Ankerproblem im FireFox
Kristina
- browser
0 Cheatah
Hallo,
ich hoffe hier kann mir einer weiterhelfen.
Habe folgendes Problem, für das ich einfach keine Lösung finde.
Ich habe eine jsp, die eine Baumdarstellung implementiert. Wenn ich auf einen Knoten klicke, unter dem sich noch keine
Kindknoten befinden, wird eine Actionmethode (Struts) aufgerufen, die Kinder aus der DB nachgeladen und die aktualisierte jsp
mit den neuen Kindknoten angezeigt. Klicke ich nochmal drauf sollen die Kinder wieder versteckt werden. Da der Baum sehr
groß werden kann, habe ich an die angeklickten Stellen noch einen Anker gesetzt auf den dann gesprungen werden soll.
Problem war anfangs, das keiner der beiden Browser IE und Firefox dann noch eine Anfrage ausgeführt haben, wenn ich auf den
Link geklickt habe wo auch der Anker saß. Hat man die Seite neugeladen, so konnte diese Aktion ausgeführt werden.
Nun habe ich für den IE auch eine Lösung gefunden, in dem ich vor <a href="/../navi.do?id=1 #current" > der Raute ein Leereichen
in die URL eingefügt habe. Jetzt klappt mit dem IE alles so wie ich es haben will.
Der FireFox hingegen führt diese Anfrage nur aus, wenn das Leereichen wieder weg ist, und dann genau zweimal , dass heisst ich
kann einmal Kinder nachladen und sie wieder verstecken, sie aber dann, wenn ich das dritte Mal auf den Knoten im Baum klicke
nicht wieder öffnen kann, sichtbar wird auch eine gepunktete Kante um den Link herum, bzw. um das verlinkte Bild, was bei den
ersten zwei Malen nicht auftritt.
Das verstehe ich nicht?? Kann mir einer erklären, was da passiert??
Nimmt man das #current hinter selectedChild=0 raus, dann funktionieren auch die Get-Anfragen...nur leider springt er dann
natürlich nicht mehr auf den Anker.
Hier der ein Teil des Codes der Seite:
<body>
<table bgcolor="#c0c0c0" width="100%" border="0" align="center" cellspacing="0" cellpadding="0" >
<tr>
<td>
<table bgcolor="#c0c0c0">
<tr align="left" >
<form action="/navi.do">
<td align="left" width="30" nowrap valign="middle">
<a href="/pages/navi.do?action=getChilds&selectedChild=0#current" target="navi" id="current" >
<IMG src="/pages/images/folder_active_blue.gif"/>
</a>
</td>
<td bgcolor="#c0c0c0" colspan="2">
<a href="/pages/content.do?action=getDetails&selected=0" target="content" > 123456
</a>
</td>
</form>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table bgcolor="#c0c0c0">
<tr align="left" >
<td bgcolor="#f0f0f0" width="20"> </td>
<form action="/navi.do">
<td align="left" width="30" nowrap valign="middle">
<a href="/pages/navi.do?action=getChilds&selectedChild=1#current" target="navi" >
<IMG src="/pages/images/folder_active.gif"/>
</a>
</td>
<td bgcolor="#c0c0c0" colspan="2">
<a href="/pages/content.do?action=getDetails&selected=1" target="content" > 1234655</a>
</td>
</form>
</tr>
</table>
</td></tr>
</table>
</body>
Gruß
Kristina
Hi,
Ich habe eine jsp, die eine Baumdarstellung implementiert. Wenn ich auf einen Knoten klicke, unter dem sich noch keine
Kindknoten befinden, [...]
bitte nutze Leerzeilen nur, um einen Absatz zu erzeugen. Dein Text ist extrem schwer lesbar.
Problem war anfangs, das keiner der beiden Browser IE und Firefox dann noch eine Anfrage ausgeführt haben, wenn ich auf den
Link geklickt habe wo auch der Anker saß.
Wenn dieser Anker auf die selbe Ressource verwies, ist dieses Verhalten absolut korrekt. Mehr noch, jedes andere Verhalten würde ich als falsch bezeichnen.
Nun habe ich für den IE auch eine Lösung gefunden, in dem ich vor <a href="/../navi.do?id=1 #current" > der Raute ein Leereichen
in die URL eingefügt habe.
Es handelt sich hierbei um _keine_ gültige URL. Das Leerzeichen _muss_ kodiert werden - was dann vermutlich zu unerwünschten Ergebnissen führt. Dieser "Workaround" stellt einen schwerwiegenden technischen Mangel dar.
Der FireFox hingegen führt diese Anfrage nur aus, wenn das Leereichen wieder weg ist, und dann genau zweimal , dass heisst ich
kann einmal Kinder nachladen und sie wieder verstecken, sie aber dann, wenn ich das dritte Mal auf den Knoten im Baum klicke
nicht wieder öffnen kann, sichtbar wird auch eine gepunktete Kante um den Link herum, bzw. um das verlinkte Bild, was bei den
ersten zwei Malen nicht auftritt.
Das verstehe ich nicht??
Ich auch nicht, aber ich meine die Beschreibung.
Hier der ein Teil des Codes der Seite:
Ich hoffe, dass Du den Code zunächst einmal komplett ersetzen möchtest. Er hat einen qualitativen Stand des letzten Jahrtausends, _und_ er ist technisch an einigen Stellen defekt. Beschäftige Dich mit semantischem Markup und CSS, und _validiere Deinen Code_.
Cheatah