AJAX auf Links anwenden ohne jedes mal ein OnClick zu setzen
Sitting
- javascript
0 Felix Riesterer0 molily
Hallo.
Meine Seite ist konstruiert das sich nur der Content-Bereich neuläd.
Bisher geht das so das jeder Link so aufgebaut ist:
<a href='javascript:;' onclick="reloadContent('URL')">Link</a>
Ich möchte aber die "Events" aus den Links draußen lassen und die URL in "href" reinschreiben können, also es soll dann so aussehen:
<a href='URL'>Link</a>
Sprich - ganz normal.
Wie kann ich auf Links reagieren und das ganze genau so umsetzen?
Gruß,
Sitting
Lieber Sitting,
Meine Seite ist konstruiert das sich nur der Content-Bereich neuläd.
Bisher geht das so das jeder Link so aufgebaut ist:
<a href='javascript:;' onclick="reloadContent('URL')">Link</a>
Deine Seite wird von Google schlecht bzw. garnicht indiziert, und Besucher ohne JavaScript sehen nix. Besucher mit JavaScript können keine (Unter-)Seite sinnvoll bookmarken.
War das Absicht?
Wenn Du die echten Linkziele in die Links schreibst, sodass tatsächlich neue Dokumente geladen werden (und zwar "komplette (X)HTML-Dokumente"!), dann frage ich mich, wozu Du noch AJAX benötigst...
Liebe Grüße,
Felix Riesterer.
Lieber Felix,
ich habe viele Beiträge hier im Forum verfolgt. Immer wieder sind mir deine (sorry) unpassenden Antworten zum Bereich Ajax aufgefallen.
Bitte informiere dich über Ajax.
Das ist echt nicht böse gemeint.
Gruß
Jürgen
ich habe viele Beiträge hier im Forum verfolgt. Immer wieder sind mir deine (sorry) unpassenden Antworten zum Bereich Ajax aufgefallen.
Inwiefern sind sie unpassend?
Ich habe in letzter Zeit den Eindruck, dass XMLHttpRequest als Ersatz für Includes, Iframes, Frames usw. gehandelt wird. Das ist natürlich äußerst schädlich und hat genau die von Felix beschriebenen Nachteile: Unterseiten sind ohne JavaScript bzw. durch Robots unzugänglich, nicht adressierbar, die Browser-History funktioniert nicht... alles das, womit wir uns schon vor 10 Jahren herumgeschlagen haben, nur damals waren zumeist Frames der Grund.
Bitte informiere dich über Ajax.
Was würde er da lernen? Ich vermute mal (um Christian Heilmann zu zitieren): »Oh look, using Ajax in a stupid way is not a good idea«.
Mathias
Lieber Jürgen,
ich habe viele Beiträge hier im Forum verfolgt. Immer wieder sind mir deine (sorry) unpassenden Antworten zum Bereich Ajax aufgefallen.
Du meinst, meine Beiträge haben keine technische Hilfestellung enthalten, sondern Kritik an dem Sinn hinter der jeweiligen Verwendung geübt? Tja, dann ist das wohl deswegen so, weil ich tatsächlich in diesen Fällen so denke. Und das ist ganz und garnicht unpassend. "Hilfe" definiere ich nicht notwendigerweise als "mach's so, dann tut es so, wie Du willst", sondern oft auch "Dein Vorgehen ist problematisch! Überdenke Deinen Ansatz". Wenn Du das unpassend findest, dann ist mir das herzlich Wurscht.
Bitte informiere dich über Ajax.
Und was sollte ich dort lernen? Ich verwende AJAX selbst seit längerem in meinen Anwendungen (z.B. um Unterverzeichnisse in meiner Dateiverwaltung aufzuklappen), aber nicht, um Frames oder Includes damit zu simulieren.
Das ist echt nicht böse gemeint.
Das ist mir schon klar. Meine Kritik war es auch nicht. Ich hatte nur beste Absichten dabei, auch wenn sie Dir anscheinend in den falschen Hals geraten sind.
Liebe Grüße,
Felix Riesterer.
Hallo Felix.
Du hast Recht, aber ich tröste dich - die Nutzung von Ajax findet bei mir nur im eingeloggten Bereich statt, wo Googlebots eh nicht hinkommen das sie sich dafür registrieren und einloggen müssten. alle Seiten die Google interessieren könnten sind Human erreichbar und sogar mit suchmaschinenfreundlichen URLS http://example.com/Kategorie/Unterkategorie/Thema
Gruß,
Sitting
Ich möchte aber die "Events" aus den Links draußen lassen und die URL in "href" reinschreiben können
Dann beschäftige dich mit dem Registrieren von Event-Handlern via JavaScript.
Im JavaScript sucht man sich u.a. mit document.getElementsByTagName die Elemente zusammen, die eine Ajax-Funktionalität bekommen sollen, und versieht diese mit Event-Handlern. In diesem Fall für das click-Ereignis. In der Handlerfunktion greift man auf das Element zu, bei dem der Klick passierte, liest das href-Attribut aus und startet die Ajax-Anfrage.
Die gängigen JavaScript-Frameworks erlauben es, solche Aufgaben in 5-7 Zeilen zu lösen. Ohne wird es etwas schwieriger. Es kommt darauf an, wie du die Links identifizieren kannst. Also rücke mal mit genaueren Infos heraus. Liegen sie z.B. alle in einem Element?
Mathias