Mehrere Scripte auf einer Seite zusammenfassen

diogenuss

Mitglied
Hallo aus Lanzarote,
bin kein kompletter JS-anfaenger mehr, aber ich habe offenbar erhebliche nicht-Kenntnisse in der Syntax. auf meiner Seite

http://www.lanzarote-global.com/lanzarote_deu.html

die urspruenglich mal mit fireworks, goLive und ein wenig von Hand programmiert wurde, moechte ich nun im Nachhinein noch zwei scripte einbauen. eine Diashow fuer die bilder im Rand rechts sowie einen kleinen Newsticker. scripte, die ich mir besorgt habe, funktionieren fuer sich allein wunderbar, aber in Verbindung mit meiner Seite nicht. ein script, Bildwechsel bei reload, funktioniert praechtig.

Bie fasse ich mehrere funktionen in einem script zusammen und rufe dies dann ueber den onLoad auf? bitte genau syntaktisch erklaeren, denn irgendwie habe ich vor allem Probleme, die umfangreichen scriptzeilen, die jetzt schon im quelltext stehen (siehe dort; zur zeit wird "onload="CSScriptInit();" aufgerufen), ordentlich einzubinden!

Oder gibt es noch eine elegantere Moeglichkeit fuer mich, um meine seite entsprechend zu erweitern?
sonnige gruesse und (hoffentlich) danke im voraus... .
 
Hallo....

zum Ersten: wenn du mehrere Funktionen bei ein und demselben event aufrufen willst(bspw.onload).... dann ist die Schreibweise:

Code:
<body onload="funktionsname1();funktionsname2();funktionsname3();">
usw.

was die mehreren Skripte betrifft... die kannst du auf verschiedene Arten in die Seite einbinden.

Zum einen kannst du alles innerhalb der Seite innerhalb eines einzigen <script>-Blocks notieren... für gewöhnlich innerhalb des <head>(muss aber nicht sein):
Code:
<script type="text/javascript">
<!--
function funktionsname1()
{
//.......
}
function funktionsname2()
{
//.......
}
function funktionsname3()
{
//.......
}
//-->
</script>
....du kannst aber auch mehrere Skriptblöcke nehmen.. das ist wurscht:
Code:
<script type="text/javascript">
<!--
function funktionsname1()
{
//.......
}
//-->
</script>


<script type="text/javascript">
<!--
function funktionsname2()
{
//.......
}
//-->
</script>


<script type="text/javascript">
<!--
function funktionsname3()
{
//.......
}
//-->
</script>


Je nach Zweck des Scripts kann es auch notwendig sein, dieses an einer bestimmten stelle im Dokument zu platzieren...z.B.
wenn per document.write() etwas ins Dokument geschrieben werden soll. Dann muss das Skript genau dort hin, wo du das, was das
Skript schreibt, selbst eintippen würdest... aber das war ja nicht die Frage :)

Eine andere Möglichkeit... gerade bei umfangreichen Skripten, wie es bei dir der Fall ist, ist das Einbinden externer JS-Dateien.
Dabei fügtst du an die Stelle der Seite, wo du normalerweise das komplette Skript zu stehen hast, folgendes ein:
Code:
<script type="text/javascript"src="pfad/zur/datei.js"></script>
.... auf diese Art kannst du auch mehrere JS-Dateien einbinden:
Code:
<script type="text/javascript"src="pfad/zur/datei.js"></script>
<script type="text/javascript"src="pfad/zur/datei2.js"></script>
<script type="text/javascript"src="pfad/zur/datei3.js"></script>
Diese externen JS-Dateien enthalten alles, was auch innerhalb der <script>-Blöcke steht.... ausgenommen die <script>-Tags und die Kommentarklammern(<!-- //-->)
Abgesehen davon, dass das Einbinden externer JS-Dateien den Seitencode übersichtlicher macht, hat dies noch den Vorteil, dass diese Dateien extra im Browsercache liegen...
kommt ein Besucher bei dir auf eine andere Seite, wo die selben Skripte eingebunden sind, müssen diese nicht mehr neu geladen werden. Bei deinem Beispiel wären das immerhin schon 50kB gesparter Traffic...
und natürlich eine entsprechend geringere Ladezeit!

Wieviele Funktionen oder Skripte in einer Seite stehen,ist ansich egal, du musst dir nur darüber im Klaren sein, dass der Browser nicht zwischen den verschiedenen Skripten unterscheidet....
es dürfen also in verschiedenen Skripten nicht identisch benannte Funktionen/Variablen vorkommen.

Das wärs fürs Erste... ich hoff, es bringt dich weiter.
 
Vielen Dank. Da habe ich ja jetzt einige Optionen und viel zu tun *freu*.
Es ist Wochenende und ich werde basteln. Bevorzugt sollte ich eigentlich alle Deine Moeglichkeiten ausprobieren, damit ichs endlich ordentlich begreife ;-)). Steht ein CSscript von der Sprache und vom Aufbau her auch so da wie ein Jscript? Denn offenbar muss ich ein solches ja auch einbinden. Oder heisst das dann bei <language=""> nochmals anders?
Ich melde mich bei Erfolg und/oder Misserfolg.
sonnige gruesse
;-)
 
So. Weiter gekommen bin ich keinen meter!
ein script fuer die Diashow

Code:
var bild=new Image;
var dia=new Array ("images/banner/bannerlaera.jpg","images/banner/bannertomate.jpg","images/banner/bannerpedro.jpg","images/banner/bannerautoeli.jpg","images/banner/bannerrancho.jpg", "");
var a=-1;
function diashow()
{
a++;
window.document.images[0].src=dia[a];
if (a==4)
{
a=-1;
}
window.setTimeout ('diashow()', 2000);
}
</script>

habe ich mit
Code:
<body bgcolor="#ffffff" onload="window.setTimeout ('diashow()', 2000); CSScriptInit();">

eingegeben. das script funktioniert auf einer testseite tadellos, aber auf meiner page passiert nichts, d.h. es wird an der entsprechenden stelle nur das erste bild angezeigt und das wars mal wieder... :mad:

weiterhin habe ich beim auslagern der funktionen offensichtlich das problem mit einem mir unbekannten parameter namens "cssriptdict" und "cssactiondict", (siehe quelltext http://www.lanzarote-global.com/lanzarote_deu.html )
die sich im quelltext bei golive finden... das auslagern der entsprechenden scripte bewirkt, dass beim aufrufen meiner seite die verschiedenen mouseover-effekte nicht mehr angezeigt werden.

oh weh oh weh - naja, der tag ist noch lang... ;-))
 
Moin:)....

zum ersten Problem.... da hast du bestimmt nur vergessen, irgendwo nen Tag aus der JS-Datei zu entfernen.
Das gibt dann einen Syntaxfehler, aufgrunddessen das ganze Skript für'n Müll ist.

Zum zweiten...

das "Dia"-Skript wird schon funktionieren, du siehst es nur nicht:)
WArum?
es wird ein Bild geändert, und zwar das erste, was sich in der Seite befindet...
Code:
document.images[0].src

Das erste Bild in deiner Seite ist:
Code:
<img src="images/spacer.gif" width="109" height="1" border="0" alt="">
....dieses ist 1px hoch....da sieht man natürlich nix.
Du willst wahrscheinlich ein anderes Bild wechseln.
Anstatt nun alle Bilder durchzuzählen und bei jeder Änderung in der Seite das Skript zu modifizieren, ist es angebrachter, dem Bild einen Namen zu verpassen, und es darüber anzusprechen:
Code:
document.nameDesBildes.src

Ich hab das alles mal in nen ZIP gepackt... ich hoff es läuft jetzt.... :)
 

Anhänge

  • lanzarote.zip
    10,8 KB · Aufrufe: 25
Danke. ist angekommen. Den fehler mit dem ersten bild des gesamten Dokumentes habe ich schoneinmal gemacht. Ich probiers und hoffe - so langsam, auch dank der einen oder anderen deutlichen Zurechtweisung ;-)) - kommt ein erster Durchblick...
 
hallo,

Leider habe ich beim download deines codes Schwierigkeiten! Das ganze kommt, egal was ich macht, ungefaehr "So" an:

schnipp
PKxxxxD¯¡0IB81 xef skript.jsÅ][sÚºx~ngúxxÎL°wxÁ??¤Ô§?ë>L¯S²ÓÙ'?é(¶5Æfl?4Éä?ï?³$Ù`?bxx'Oxii]>_?Dì?ï¾â`dT*?7¯?{]?xÈ@x¹E???ï`p0uÌ?ºx:îõL?NxF£¨èáÍk:p?» qx?M'_ñ?¨hÃ@?©c?xu?Ux2DãÓx ¦?ÓA?°ÚúÅe,Ês=åx{?x?x}'TªÛÄxx£xÝÚRß¼~x_¼¤}XL¹æ?\I]xxj(¢Q;?|zx?·Ô±ÜÛº?oèxx®W?úÄ;xx'è?uGxÄó?j?=?t?@a«êæx{?ágXN~}x(???º¥©5_¡ ÔüïÍã?/?`±¢X®9xxËú?x§6ax?îº??67Ñ?Òõ»§?º¹x?{·§ªè=
schnapp

bitte nochmals! Vielen Dank.
 
Guten morgen und vielen Dank.
nicht nur, dass es funktioniert, sondern ich hab auch was gelernt bezueglich der struktur. Nirgends in den archiven habe ich diese "scriptdict" und "actiondict" gefunden. was sind denn dies fuer befehle?
Dein script habe ich anschliessend auch auf meiner spanischen- und englischen seite eingebaut. mit dem erfolg, dass es, entsprechend umgewandelt, auf meiner spanischen seite laeuft (http://www.lanzarote-global.com/lanzarote_esp.html) und auf meiner englischen seite nicht. grrrr. ich bin schon so gut es geht den quelltest durchgegangen um nach kleinen fehlern zu suchen, aber erfolglos. gibt es allgemeine tipps fuer das aufspueren von solchen fehlerchen?
Kann sich eigentlich nur um irgendein Zeichen zu viel oder zu wenig handeln - aber das ergebnis ist, dass mir der fehler " 'bilder' ist nicht definiert" und danach das selbe mit "bannera" und "bannerb" ins haus fliegt... .
Sonnige gruesse - und fuer die hilfe hast du bei deinem naechsten lanzarote-urlaub schon mal ein gutes glas wein sicher... ;-)

diogenes
 
Diese komische Tags wirst du wahrscheinlich höchstens im Handbuch deiner Software finden:)

Was das aufspüren der Fehler angeht... da kenn ich nix spezielles... Javascript teilt halt nur mit, wo es ein Problem hat, die tatsächliche Ursache kann ganz woanders liegen.

Oftmals ist der erste gemeldete Fehler, wenn es z.B. ein Syntaxfehler ist, der aufschlussreichste.... weitere Fehler resultieren dann idR. aus diesem.... kann dann halt auch ein fehlendes Anführungszeichen oder soetwas sein.

Vielleicht stimmt auch einfach der Pfad zur externen JS-Datei nicht.
Kannst ja mal zum Testen in selbige einen alert hineintun... der sollte dann beim Seitenaufruf kommen, wenn das Skript gefunden wird.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück