Ankersprung funktioniert nicht
Marco
- html
0 Cheatah0 Marco0 Cheatah0 Marco0 Marco-1 Jörg Peschke- menschelei
1 Siechfred- javascript
Hallo HTML-Interessierte und solche, die es werden wollen =)
Ich habe eine html-Seite erstellt mit entsprechenden Verweisen zu einer Datei mit Ankern:
<a href="#" onClick="popup('servicel.htm#2','leistung',400,60,'no','no');" onFocus="if(this.blur)this.blur();">klick</a>
Das JavaScript definiert sich wie folgt: popup(Dateiname,Framename,Fensterbreite,Fensterhöhe,Scrollbars,Menü)
Sprich es ruft ein popup auf welches den entsprechenden Ankerpunkt anzeigt (also <a name="2"></a> z.B.)
Im Firefox und Netscape funktioniert alles einwandfrei, jedoch spinnt der IE6.
Klicke ich dort auf den Link mit dem Verweis zu Anker2 (oder 3,4,5) und es ist noch kein Fenster geöffnet, kommt zwar das popup, jedoch wird der falsche Anker (nämlich immer der 1.) aufgerufen. Wenn das Popup noch im Hintergrund offen ist, geht alles recht gut.
Wo liegt denn da der Fehler, bzw. was interpretiert der IE falsch?
Grüße,
Marco
Hi,
<a href="#"
warum dürfen nicht-JavaScript-taugliche Clients bei Dir nicht weiter kommen?
onClick="popup('servicel.htm#2'
"2" ist weder ein gültiger Name (altes HTML), noch eine gültige ID (XHTML). Insofern wäre es ein Fehler, _wenn_ dies funktionieren würde.
onFocus="if(this.blur)this.blur();"
Warum vernichtest Du die Navigier- und damit die Nutzbarkeit Deiner Seite?
Im Firefox und Netscape funktioniert alles einwandfrei, jedoch spinnt der IE6.
Es ist selten, dass Geckos eine "bessere" Fehlerkorrektur haben als der IE. Dennoch bleibt es eine Fehlerkorrektur.
Cheatah
Hallo,
danke für die Antwort.
warum dürfen nicht-JavaScript-taugliche Clients bei Dir nicht weiter kommen?
Das ist eher das kleinere Problem. Auf der Seite erwarte ich keine Computergurus, sondern Kunden unserer Firma ... und das sind wirklich 2 Paar Schuhe =)
"2" ist weder ein gültiger Name (altes HTML), noch eine gültige ID (XHTML). Insofern wäre es ein Fehler, _wenn_ dies funktionieren würde.
Ich habe die Anker jetzt mal durch konkrete Wörter ersetzt, dennoch ruft der IE immer noch den Anfang der Seite auf, auch wenn ich auf den Verweis zu Anker 3 klicke. Das ist ärgerlich :(
Warum vernichtest Du die Navigier- und damit die Nutzbarkeit Deiner Seite?
Ich habe noch nie einen Nutzen am Punktrahmen um Links gesehen. Deshalb wird er eben entfernt :P
Es ist selten, dass Geckos eine "bessere" Fehlerkorrektur haben als der IE. Dennoch bleibt es eine Fehlerkorrektur.
Ich weiß wirklich nicht, ob der Fehler von mir ausgeht. Oder liegt's vielleicht am Quelltext der Zieldatei? Die Anker werden folgendermaßen definiert:
[...]
<a name="transp"></a>
<table border=0 cellspacing=0 cellpadding=0 class="border1" width="100%">
<tr>
<th>
<p style="margin:5px;">
<span class="head">Transporte</span>...
</p>
</th>
</tr>
</table>
[...]
Danke für jegliche Hilfe.
Gruß,
Marco
Hi,
warum dürfen nicht-JavaScript-taugliche Clients bei Dir nicht weiter kommen?
Das ist eher das kleinere Problem. Auf der Seite erwarte ich keine Computergurus, sondern Kunden unserer Firma ... und das sind wirklich 2 Paar Schuhe =)
Du bist neu im Geschäft, richtig? Dass diese Dinge alles andere als zwei Paar Schuhe sind, lasse ich gerne mal außen vor, genauso wie die Tatsache, dass auch das völlig irrelevant ist. Aber frage Dich bitte einmal, wie diese Kunden auf eure Homepage kommen - und ob die entsprechende Suchmaschine jemals JavaScript können wird.
Ich habe die Anker jetzt mal durch konkrete Wörter ersetzt, dennoch ruft der IE immer noch den Anfang der Seite auf, auch wenn ich auf den Verweis zu Anker 3 klicke. Das ist ärgerlich :(
Auch wenn es sich um einen Link handelt? Also ohne dieses JavaScript-Geraffel.
Warum vernichtest Du die Navigier- und damit die Nutzbarkeit Deiner Seite?
Ich habe noch nie einen Nutzen am Punktrahmen um Links gesehen. Deshalb wird er eben entfernt :P
Wieso willst Du Deine Unkenntnis zum Nachteil Deiner Besucher machen?
<a name="transp"></a>
<table border=0 cellspacing=0 cellpadding=0 class="border1" width="100%">
<tr>
<th>
<p style="margin:5px;">
<span class="head">Transporte</span>...
Dein Quellcode ist hochgradig unsemantisch. Wieso? Und ist er wenigstens valide?
Danke für jegliche Hilfe.
Ein Link auf die Problemseite würde hierzu weiter helfen.
Cheatah
Hallo
Du bist neu im Geschäft, richtig? Dass diese Dinge alles andere als zwei Paar Schuhe sind, lasse ich gerne mal außen vor, genauso wie die Tatsache, dass auch das völlig irrelevant ist. Aber frage Dich bitte einmal, wie diese Kunden auf eure Homepage kommen - und ob die entsprechende Suchmaschine jemals JavaScript können wird.
Ich weiß eben nur nicht, auf welche Seite ich verlinken soll, dass ist mein Problem. Auf eine mit bitte aktivieren Sie Ihr Java-Script? Dann doch lieber auf einen leeren Anker. Und den Suchmascheinen habe ich - sofern die Einträge bei SelfHTML stimmen eh verboten weiter zu suchen als bis zur zweiten IndexSeite und dort eben nur die entsprechenden Stichworte.
Ich habe die Anker jetzt mal durch konkrete Wörter ersetzt, dennoch ruft der IE immer noch den Anfang der Seite auf, auch wenn ich auf den Verweis zu Anker 3 klicke. Das ist ärgerlich :(
Auch wenn es sich um einen Link handelt? Also ohne dieses JavaScript-Geraffel.
Ich kanns leider nicht als konkreten Link deklarieren. Warum? Weil ich damit kein kleines Popup hinbekomme, wie es erforderlich ist. Wegen einer kleinen Erklärung werde ich keine komplette Seite aufrufen ... das ist ja Benutzerunfreundlicher als das vermeintliche Rahmenweglassen.
Ich habe noch nie einen Nutzen am Punktrahmen um Links gesehen. Deshalb wird er eben entfernt :P
Wieso willst Du Deine Unkenntnis zum Nachteil Deiner Besucher machen?
Wieso klärst du mich nicht kurz auf, jetzt bin ich genauso schlau wie vorher :( Für mich macht's keinen Sinn und ist schlichtweg unschön.
Dein Quellcode ist hochgradig unsemantisch. Wieso? Und ist er wenigstens valide?
Was meinst du denn jetzt damit? Weil ich den Ausschnitt angegeben habe könnt Ihr nix mit anfangen? Oder verstehe ich was falsch?
Ein Link auf die Problemseite würde hierzu weiter helfen.
Die Seite ist noch nicht online und wird's auch nicht, bevor das nicht so klappt, wie ich das mag. Schließlich hilft es so oder so dem Kunden nicht :(
Gruß,
Marco
Hi,
Ich weiß eben nur nicht, auf welche Seite ich verlinken soll, dass ist mein Problem. Auf eine mit bitte aktivieren Sie Ihr Java-Script? Dann doch lieber auf einen leeren Anker.
Nein, auf genau die Seite, auf die der Besucher ohne Javascript per Popup gelangen würde. Schau' Dir dazu mal http://www.1ngo.de/web/popup.html an.
Ich kanns leider nicht als konkreten Link deklarieren. Warum? Weil ich damit kein kleines Popup hinbekomme, wie es erforderlich ist. Wegen einer kleinen Erklärung werde ich keine komplette Seite aufrufen ... das ist ja Benutzerunfreundlicher als das vermeintliche Rahmenweglassen.
Ist diese Erklärung denn so unwichtig? Dann kannst Du sie auch ganz weglassen.
Ich habe noch nie einen Nutzen am Punktrahmen um Links gesehen. Deshalb wird er eben entfernt :P
Dr Nutzen liegt in der Orientierung. Aber davon abgesehen verhinderst Du dadurch nicht nur die Markierung, sondern komplett die Nutzbarkeit des Links für Besucher, die mit Tastatur navigieren. Ganz schön rücksichtslos und im Fall, daß ein solcher Besucher auf die Seite kommt, ein sehr schlechtes Image für die Firma.
freundliche Grüße
Ingo
Ich habe die Anker jetzt mal durch konkrete Wörter ersetzt, dennoch ruft der IE immer noch den Anfang der Seite auf, auch wenn ich auf den Verweis zu Anker 3 klicke. Das ist ärgerlich :(
Auch wenn es sich um einen Link handelt? Also ohne dieses JavaScript-Geraffel.
Also insoweit hattest du recht, dass - wenn ich es als ganz normalen Link auf die Seite deklariere - dann der richtige Anker angezeigt wird im IE6. Jedoch hilft mir das nur insofern, dass ich dadurch herausgefunden habem dass weder mein Quellcode noch der Link an sich falsch war (FF und NS können es ja richtig darstellen) sondern das Problem wohl darin liegt, dass der IE ein Problem hat das popup zu öffnen UND gleich zur richtigen Stelle zu springen.
Dummerweise weiß ich nicht, wie ich das Script so umschreiben kann, dass es vom IE und vom NS/FF akzeptiert wird.
Gruß,
Marco
Moin,
Du bist neu im Geschäft, richtig?
Welches Geschäft? Nach meiner Erfahrung interssieren sich viele "im Geschäft" für Barrierefreiheit, Validität usw nicht die Bohne...."Es hat doch ohnehin jeder den IE", "Wie, die schrift gibt es unter Linux nicht? Wer benutzt das denn schon?", "Mac Safari, soso. Hab ich ja noch nie gehört."
"Selber schuld, wenn die Leute kein Flash installieren, das ist doch Standard!",...
Eine Seite barriefre-frei und valide zu gestalten ist meistens das persönliche Privatvergnügen.
Kann man auch einer Firma nicht verübeln, die denkt Zielgruppen-Orientiert, und "Zielgruppe" ist meistens "Masse" und "Masse" ist "IE-User, Flash, JavaScript ohne Firewall und Virenscanner" :)
Gruesse,
Joerg
Tag Marco.
Ich weiß wirklich nicht, ob der Fehler von mir ausgeht. Oder liegt's vielleicht am Quelltext der Zieldatei?
Schon mal versucht, den Anker nach einer winzigen Verzögerung anzuspringen? Der IE ist in vielerlei Dingen ein regelrechter Lahmarsch, da bewirkt so ein kleines setTimeout manchmal Wunder :-) Das bestätigt übrigens auch folgender uuuuralter Archivthread.
Ein möglicher Lösungsansatz wäre, über das all-Objekt die Elementposition abzufragen und dann dorthin zu scrollen:
function gehezu() {
var pos = document.all.meinAnker.offsetTop;
window.scrollTo(0, pos);
}
Geht aber nur im IE und im Opera (teilweise).
Siechfred
Hallo,
function gehezu() {
var pos = document.all.meinAnker.offsetTop;
window.scrollTo(0, pos);
}
Ich glaube, mit "window.scrollTop = irgendwas" kriegt mans sogar unter den meisten Geckos zum laufen.