• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

In JS Unterprogramm starten

Vielleicht liegts auch daran, dass ich zur Zeit noch nicht "der" JavaScripter bin. Ich kenne die Befehle (und versteh sie folglich daraus auch nicht).

Ich denke, ich werde die Frage erst mal für mich offen lassen und mir die ganzen Befehle erarbeiten. Ich hoff, dass ich das dann versteh. Wird wohl etwas länger dauern.
Die Frage war, was du nicht verstehst?
 
Werbung:
Hi!

Ich habs versucht anhand des Codes zu erläutern. Ich hoffe es ist verständlich:

Code:
function include(src, f) {                //hier definier ich eine Funktion
var s = document.createElement('script');      //Variable s = was macht document.createElement('script')
    if(s.attachEvent) {        //wenn (wofür s.attachEvent? s steht wohl für die Variable, doch attachElement?
        s.attachEvent('onreadystatechange', f);   //onreadystatechange??? Steht überall was von Eventhandlern, doch was ist das? =(
    } else {     //Wenn nicht =)
        s.onload = f;    //vllt: wenn s(variable) geladen wurde???=f    warum wird f s.onload zugewiesen
        s.onerror = function() {    //sollte es dabei ein error geben??? oder was anderes?= function() ???
            alert('kann ' + src + ' nicht laden.');  // das weiß ich!!! Wird eine Alertbox ausgegeben mit dem inhalt der nicht geladenen Quelle
        };
    }
    s.src = src;     //da is mein Latein schon wieder am Ende: was ist s.src??? hat das S was mit der Variable zu tun?=src (is wahrscheinlich die variable?)
    document.body.appendChild(s);  // was machst du hiermit? was bewirkt der Befehl?
}

Mich würds nicht wundern, wenn du jetzt aufgibst. :)

Grüße
Stromi
 
Naja, wenn du dir soviel Mühe machst, warum sollte ich dann aufgeben ;)
function include(src, f) { //hier definier ich eine Funktion
richtig. Mit zwei Parametern.

var s = document.createElement('script'); //Variable s = was macht document.createElement('script')
Das erzeugt ein script-Element und weist es der Variabel s zu.

if(s.attachEvent) { //wenn (wofür s.attachEvent? s steht wohl für die Variable, doch attachElement?
Der Wert in s ist ein Objekt und zwar das was du auch bekommst, wenn du z.b. mit getElementById('id') ein Element aus einem bestehenden Dokument ermittelst, nur ist es eben ein selbsterzeugtes script-Element. Diese Objekte haben Eigenschaften, im Fall von <script> ist das z.b. src und type, aber auch andere DOM Funktionen, wie z.b. attachEvent bzw. addEventListener je nach Browser. Die Abfrage macht ncihts weiter, als zu prüfen, ob es die Eigenschaft attachEvent gibt (das wäre dann nur im IE der Fall)

s.attachEvent('onreadystatechange', f); //onreadystatechange??? Steht überall was von Eventhandlern, doch was ist das? =(
Was Eventhandler sind? Das sind die Funktionen, die dafür sorgen, dass Mausbewegungen, klicks oder Tastatureingaben bemerkt werden können. f muss eine Referenz auf eine Funktion sein, diese wird dann ausgeführt, wenn das Script Element einen readychange Event feuert, das macht der Browser von sich aus (in dem Fall der IE)

} else { //Wenn nicht =)
s.onload = f; //vllt: wenn s(variable) geladen wurde???=f warum wird f s.onload zugewiesen
Das ist eine etwas einfachere Form des Eventhandling, die erste Variante brauchten wir nur für den IE.

s ist das Skriptlement und das feuert, wenn du ein externes Skript damit lädst, ein load Event sobald das Skript geladen wurde. f ist wieder die Funktionsreferenz, die du als Parameter übergeben hast.

Ein kleiner Ausflug zu Funktionsreferenzen. Probier mal das folgende aus und versuch's zu verstehen:
Code:
var x = window.alert;
x('Hallo');
s.onerror = function() { //sollte es dabei ein error geben??? oder was anderes?= function() ???
onerror heißt, wenn die Datei nicht geladen werden konnte (weil sie nicht existiert oder der Server down ist). function() {} ist eine andere Schreibweise für eine Funktionsreferenz. Auch hier wieder ein Beispiel
Code:
var f = function(t){ 
alert('Hallo ' + t);
};
f('Stromi');
alert('kann ' + src + ' nicht laden.'); // das weiß ich!!! Wird eine Alertbox ausgegeben mit dem inhalt der nicht geladenen Quelle
richtig. Wenn der error Event ausgelöst wurde.

};
}
s.src = src; //da is mein Latein schon wieder am Ende: was ist s.src??? hat das S was mit der Variable zu tun?=src (is wahrscheinlich die variable?)
s ist das Skriptelement, da du ein externes Skritp nachladen willst, muss hier der link oder Pfad zu dem Skript zu gewiesen werden. src ist der erste Parameter mit dem du die Funktion aufrufst. Wenn dann die Zuweisung erfolgt ist, läuft das Skript normal weiter und der code weiter oben, wird aufgerufen, wenn die entsprechenden Events ausgelöst werden.

document.body.appendChild(s); // was machst du hiermit? was bewirkt der Befehl?
}
Das fügt das Skript Element in den <body> ein, ob das notwendig ist, weiß ich gar nicht und bin zu faul um es zu testen.

Der Aufruf der Funktion könnte z.b. so aussehen:

Code:
function starte() {
Funktion_deines_skripts();
}
include('deinSkript.js', starte);
 
Werbung:
AAAAHHHH!!!! *ein Licht geht auf*

So jemaden wie dich könnt ich mal als Lehrer gebrauchen!!! Danke! Ich habs verstanden *party*

Nur noch eine allerletzte Frage:
ínclude ist doch php, oder? zumindest kenn ich das daher...

Grüße
Stromi
 
Ja, die Funktion include gibt es in PHP, daher bietet es sich an, diese in JS auch so zu nennen. Wobei hier load() vorzuziehen wäre.
 
ouh man, natürlich.

Ich hab an nen Befehl gedacht :-D Das ist natürlich die Funktion

Ich glaub, dann hat sich alles erübrigt!!!

Danke noch mal für die ausführliche Erklärung!!!!!

Grüße
Stromi
 
Werbung:
Zurück
Oben