Moin!
Auf meinen Websites benötige ich grundsätzlich ohnehin nur die fünf Funktionen:
function MM_preloadImages() { //3.0
function MM_swapImgRestore() { //3.0
function MM_findObj(n, d) { //4.0
function MM_swapImage() { //3.0
function MM_openBrWindow(theURL,winName,features) { //v2.0
function MM_showHideLayers() { //v3.0
function MM_reloadPage(init) { //reloads the window if Nav4 resized
Das sind sieben Funktionen. ;)
Dreamweaver-Javascript ist nicht schlecht. Wenn man es genau betrachtet, dann haben da echte Experten super-kompakten Code zusammengebastelt, unter Ausnutzung so ziemlich jeder Abkürzung, die man so finden kann. Sowas produziert ein vernünftig denkender Mensch nicht, weil er vielleicht nochmal ein paar Änderungen einbauen muß.
Das Problem mit Dreamweaver-Javascripten ist: Niemand Normalsterblicher blickt da durch. Und wenn dann jemand hier im Forum schreibt, er habe dasunddas Problem mit seiner Seite, und man entdeckt dann Dreamweaver als Gestaltungsprogramm, dann geht die Bereitschaft, sich durch solchen Ekelcode zu kämpfen, ganz schnell auf Null zurück.
Man kann es vielleicht auf folgende Formel bringen: "Wer Dreamweaver benutzt, muß selber sehen, wo er bleibt. Für irgendwas muß Macromedias Support ja gut sein." Dreamweaver produziert nämlich ziemlich konfuses Zeug, nicht nur im Javascript-Bereich. Auf alle Fälle aber steht er der hier vorherrschenden Philosophie entgegen, den Code lieber per Hand zu schreiben. (Aber das kriegen Anwender anderer WYSIWYG-Software wie Frontpage genauso ab ;) .)
mit der DW-Funktion wird die window.open-Funktion grundsätzlich im <script>-Bereich vereinbart; wäre es auch möglich die Vereinbarung im head wegzulassen und direkt beim link mit onClick="window.open('bla.html','blafenster','width=320,blabla') zu schreiben, so dass das in einer Riesenanzahl von Browsern funktioniert (min. Opera, IE & NS >4)
Funktionsaufrufe in Links funktionieren in einer Riesenanzahl von Browsern (natürlich nur denen, die Javascript können). Die oben angegebene Funktion "MM_openBrWindow" erledigt aber nichts anderes als drei Parameter entgegenzunehmen und an "window.open" weiterzureichen. Da kann man dann wirklich direkt "window.open" aufrufen.
Ich empfehle folgende Vorgehensweise:
<a href="derlink.html" target="_blank" onClick="window.open('derlink.html','irgendeinname','width=200,height=300');return false;">Irgendein Text</a>
Vorteil: Wenn Javascript aktiv ist, wird ein neues Fenster geöffnet, wie gewünscht. Durch "return false" wird der HTML-Link aber NICHT ausgeführt, ist in diesem Fall nur Dekoration. Wenn Javascript nicht aktiv ist, wird onClick nicht ausgeführt, aber der HTML-Link. Und der führt bei Fenster-Browsern immerhin noch zu einem neuen Fenster (ohne daß man auf dessen Größe Einfluß nehmen könnte), und bei Browsern ohne Fenster (wie z.B. Lynx) wird immerhin noch der Link verfolgt.
So machst du auf einen Schlag eine Menge Leute glücklich.
- Sven Rautenberg