mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 06:27 Benutzername: Passwort: Auto-Login

Thema: Javascript reduzieren (link inside) vom 24.05.2012


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Javascript reduzieren (link inside)
Seite: 1, 2  Weiter
Autor Nachricht
hellgold
Threadersteller

Dabei seit: 05.10.2006
Ort: Duesseldorf
Alter: 47
Geschlecht: Männlich
Verfasst Do 24.05.2012 14:39
Titel

Javascript reduzieren (link inside)

Antworten mit Zitat Zum Seitenanfang

Hallo an alle Pro's hier,

ich habe auf der Seite http://www.illustratorenmuenchen.de/ das Problem oder besser das dringende Anliegen, den Javascriptcode, der die einzelnen Unterseiten aufruft zu reduzieren.

Die Seite ist so oder so nicht mehr auf der Höhe der Zeit (brauchen wir nicht diskutieren), ich betreue die aber nur ehrenamtlich und der alte Programmierer ist nicht mehr verfügbar.

Gibt es eine Möglichkeit, den Javasricpt-Code als zentrale Funktion irgendwie „auszulagern“ so dass ich die einzelnen Zeilen kürzer halten kann?

Oder gäbe es eine bessere Möglichkeit des Aufrufs der Unterseiten, z.b. Zahlen oder irgendwelche Variablen etc. pp.?

Danke Euch für Eure Hilfe
HG
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
immerIch

Dabei seit: 19.10.2010
Ort: #mein{display:block}
Alter: 35
Geschlecht: Männlich
Verfasst Do 24.05.2012 15:26
Titel

Antworten mit Zitat Zum Seitenanfang

Meinst du die einzelnen Javascript-Befehle auf den Links (onclick etc.)?

Da du für jeden Link immer den gleichen Code ausführst, jedes mal aber mit anderen angaben, könntest du diesen Code in eine Funktion auslagern, und diese dann mit den jeweiligen Parametern aufrufen.

Vorher:
Code:

<a href="javascript:window.open('kontakt.htm','kontakt','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=380,height=800,left=10,top=10'); void(0);">KONTAKT</a>&nbsp; <a href="javascript:window.open('imprint.htm','imprint','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=650,height=600,left=10,top=10'); void(0);">IMPRESSUM</a>


Nachher:
Da sich bei deinen neuen Fenstern nur Url, Titel, Höhe und Breite ändern, können wir alle anderen Paramter einmalig in unserer Funktion setzen. Die oben genannten, werden dann bei bei jedem Aufruf entsprechend eingesetzt.
Code:

<script>
function openNew(url,title,width,height){
window.open(url,title,'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,width='+width+',height='+height+',left=10,top=10');
void(0);
}
</script>

<a onclick="openNew('kontakt.html','kontakt',380,800);">KONTAKT</a>&nbsp;
<a onclick="openNew('inprint.html','imprint',650,600);">IMPRESSUM</a>
...


Die Funktion kannst du auch in eine Js-Datei auslagern und im Head mit <script src="datei.js"></script> einbinden.


Zuletzt bearbeitet von immerIch am Do 24.05.2012 15:28, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
hellgold
Threadersteller

Dabei seit: 05.10.2006
Ort: Duesseldorf
Alter: 47
Geschlecht: Männlich
Verfasst Do 24.05.2012 15:57
Titel

Antworten mit Zitat Zum Seitenanfang

Hallo und vielen Dank.

Blöderweise klappts nicht.
Ich habe in der index.html das script eingebunden, die Datei selbst liegt in einem Unterordner:

Im Headbereich:
<!-- Oefnen von Links in neuem Fenster-->
Code:
<script src="js/linkopennew.js"></script>


Im Html-Code:
Code:
<a onclick="openNew('kontakt.htm','kontakt',380,800);">KONTAKT</a>


Was läuft da noch verkehrt? Ich denke nur eine Kleinigkeit, oder?

Danke nochmal für Deine Hilfe
HG

EDIT: Haben oben eine falsche URL angegeben, bitte diese aufrufen:
http://www.illustratorenduesseldorf.de/_neu/index.html


Zuletzt bearbeitet von hellgold am Do 24.05.2012 16:11, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
hellgold
Threadersteller

Dabei seit: 05.10.2006
Ort: Duesseldorf
Alter: 47
Geschlecht: Männlich
Verfasst Do 24.05.2012 16:22
Titel

Antworten mit Zitat Zum Seitenanfang

Ergänzung: Fehler gefunden, hatte in der externen Datei einen Fehler.

Danke für Deine Hilfe!!!!
HG


Zuletzt bearbeitet von hellgold am Do 24.05.2012 16:26, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
ChrisKam

Dabei seit: 01.07.2009
Ort: Hattingen
Alter: 38
Geschlecht: Männlich
Verfasst Do 24.05.2012 16:24
Titel

Antworten mit Zitat Zum Seitenanfang

Hmm joa die Lösung von immerIch ist schon OK. Es geht aber noch einfacher. Ich würde es auch unbedingt ohne echte Popups machen, viele Browser stehen da nicht so drauf und die Userexperience ist auch nicht so toll.

Nimm lieber was vorgefertigtes wie z.B. Highslide dafür http://highslide.com/

Wenn Du Dich da kurz reinarbeitest, kannst Du Dir sehr viel Schreibarbeit sparen. Viel mehr als

Code:

<a href="name.html" class="highslide">Vorname Name</a>


bleibt dann nicht übrig im Quelltext der Seite, wenn das Script korrekt eingebunden ist. Nicht mal die Höhe/Breite muss mit übergeben werden und auch das onclick=XYZ Events lassen sich am besten nachträglich ("unobstrusive") an die Links dranbasteln. Das geht z.B. supereinfach mit JQuery, wenn man faul ist.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
hellgold
Threadersteller

Dabei seit: 05.10.2006
Ort: Duesseldorf
Alter: 47
Geschlecht: Männlich
Verfasst Do 24.05.2012 16:37
Titel

Antworten mit Zitat Zum Seitenanfang

Danke für Deine Ergänzung.

Das sieht schon ziemlich cool aus und würde auch sehr gut gehen, denn ich habe ja immer nur die gleichen Pop-Ups.

Kannst Du mir den letzten Absatz Deiner Antwort noch näher erläutern? JQuery hab ich schonmal gehört, was genau meinst Du aber?

Gruß
HG
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Karlarsch

Dabei seit: 05.02.2007
Ort: -
Alter: 58
Geschlecht: Männlich
Verfasst Do 24.05.2012 17:07
Titel

Antworten mit Zitat Zum Seitenanfang

Kleine Erklärung zu "Unobtrusive DOM Scripting" zwar etwas älter aber imho gut erklärt.

Und hier ist jQuery

Gruß
Karl
  View user's profile Private Nachricht senden
ChrisKam

Dabei seit: 01.07.2009
Ort: Hattingen
Alter: 38
Geschlecht: Männlich
Verfasst Do 24.05.2012 17:09
Titel

Antworten mit Zitat Zum Seitenanfang

Also: Statt für jeden einzelnen Link per Hand onclick="return hs.expand(this)" in die HTML zu schreiben, kann man diese Aufgabe einfach einem weiteren kleinen Script überlassen. JQuery ist für solche Sachen sehr geeignet, das sähe dann in etwa so aus (nicht getestet!):

Code:

$(document).ready(function() {
  $('.autoren a').each(function(){
     this.bind('click',(function(){
        return hs.htmlExpand(this, {objectType: 'frame'});
     };
  });
});


Auf gut Deutsch: Sobald das Dokument geladen wurden, füge jedem <a> innerhalb eines Elementes mit Klasse "autoren" für das "onclick" Event die Funktion return hs.htmlExpand(this, {objectType: 'frame'}) an. Hier könnte man übrigens noch weitere Parameter übergeben, falls nötig. Wenn du für Links in einem anderen Teil etwa einen andere Art von Popup möchtest, z.B. für die Autoren zusätzlich noch eine Galerie, nicht aber für die Impressum Links etc.

Edit: Und noch ein wichtiger Hinweis zum testen - alles, was durch Javascript nachträglich ins DOM gebastelt wird, taucht nicht auf wenn man sich einfach den Quelltext der Seite anzeigen lässt durch den Browser. Dafür braucht man z.B. Firebug, eine extrem nützliche Erweiterung für den Firefox.

Viel Erfolg Lächel


Zuletzt bearbeitet von ChrisKam am Do 24.05.2012 17:11, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen javascript-codeschnipsel interpretieren [inside]
Bildaustausch per Klick und Link mit Javascript
Wie geht sowas - JavaScript? (Link im Thread)
Zwei JavaScript Befehle auf einem Link?
Bildaustausch mit JavaScript - getauschtes Bild mit Link
JavaScript Link auf eine .cfm, welche ich als PopUp handhabe
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.