Wie bastle ich mir einen Konstruktor?
Luna
- javascript
0 Christian0 Sonia0 Günter Marchewka0 Luna
0 Simon Reinhardt
Was benötigt so ein Konstruktor alles und wie kann ich dem angeben, er soll externe Daten aus einer anderen Datei als HTML anzeigen lassen?
Ähhhh,
was genau möchtest du tun????
Normalerweise benötigst du nur einen Konstruktor, wenn du selber ein Objekt definieren möchtest. Was soll dieses Objekt können? In welcher Form möchtest du die externen Daten in das html dokument bekommen? Was für externe Dateien möchtest du gerne auslesen?
Versuchs mal mit ner anderen Programmiersprache. Mit JavaScript bekommst du nur js Dateien ausgelesen.
frohes schaffen,
Christian
Hi,
speichere eine normale Txt-datei mal als textdatei.htm
und integriere das in eine echte html seite
<Layer src="textdatei.htm" width=400 height=200 ></Layer>
und schau was passiert :-)
Viel Spass
Sonia
Hallo Luna,
bist Du noch bei deinem Info-Broadcast-Projekt?
Was benötigt so ein Konstruktor alles und wie kann ich dem angeben, er soll externe Daten aus einer anderen Datei als HTML anzeigen lassen?
Der Konstruktor liest keine Daten ein, aber:
Mit JavaScript kann man sehr viel machen und beliebig Daten verarbeiten. Eine sehr schöne Möglichkeit sind sog. assoziative Arrays, für die ein Konstruktor benötigt wird.
Ein Konstruktor:
var p = new Array(); // Projektmitglieder
function Mitglied(aufgabe, firma, abt, bereich, name, telefon, fax, email, strasse, ort)
{
this.aufgabe = aufgabe;
this.firma = firma;
this.abt = abt;
this.bereich = bereich;
this.name = name;
this.telefon = telefon;
this.fax = fax;
this.email = email;
this.strasse = strasse;
this.ort = ort;
}
gespeichert in einer Datei z.B. Mitgliedf.js
Dazu passend eine gut strukturierte Datei, über die leicht die dazugehörigen Daten in einem Editor erfasst werden können:
p[p.length] = new Mitglied();
p[p.length-1].aufgabe = 'Projektleitung';
p[p.length-1].firma = 'Berati GmbH';
p[p.length-1].abt = 'Geschäftsleitung';
p[p.length-1].bereich = '';
p[p.length-1].name = 'Frau Berta Berati';
p[p.length-1].telefon = '';
p[p.length-1].fax = '';
p[p.length-1].email = 'Berta.Berati@berati.com';
p[p.length-1].strasse = 'Scriptallee 1';
p[p.length-1].ort = '12345 Scripting';
p[p.length] = new Mitglied();
p[p.length-1].aufgabe = 'Program Managerin';
p[p.length-1].firma = 'Berati GmbH';
p[p.length-1].abt = 'Abteilung Rechenzentrum';
p[p.length-1].bereich = '';
p[p.length-1].name = 'Frau Hanni Hacker';
p[p.length-1].telefon = '';
p[p.length-1].fax = '';
p[p.length-1].email = '';
p[p.length-1].strasse = 'Scriptallee 1';
p[p.length-1].ort = '12345 Scripting';
Gespeichert z.B. in einer Datei Mitgliedd.js
Ein Script in der folgenden Form sollte in etwa Deine HTML-Datei beinhalten:
<script language=JavaScript src=mitgliedf.js></script>
<script language=JavaScript src=mitgliedd.js></script>
<script language=JavaScript>
var anzPersonen = p.length;
var PersonText = ' ';
function Personen()
{
PersonText += '<div ID="layer999">\n<center>\n<h1>' + a[0].name + '\n</h1>\n</center>\n</div>';
PersonText += '\n<div ID="layer998">'
+ '\n<table>'
+ '\n<tr>\n<td width="30%" align="right" valign="top">\n<a>Info zu Person :\n</a>\n</td>\n<td width="70%" align="left" valign="top">\n<a>Bewegen Sie die Maus auf einen der angezeigten Namen. Es werden dann alle verfügbaren Informationen zu dieser Person angezeigt.\n</a>\n<HR>\n</td>\n</tr>'
+ '\n<tr>\n<td width="30%" align="right" valign="top">\n<a>Mail an eine Person :\n</a>\n</td>\n<td width="70%" align="left" valign="top">\n<a>Klicken Sie mit der Maus auf den Namen der Person oder auf eine angezeigte eMail-Adresse. Es wird automatisch eine Mail erzeugt.\n</a>\n<HR>\n</td>\n</tr>'
+ '\n<tr>\n<td width="30%" align="right" valign="top">\n<a>DatenPflege : \n</a>\n</td>\n<td width="70%" align="left" valign="top">\n<a>Klicken Sie am Ende der Liste aller Projektmitglieder auf den Eintrag "Daten pflegen". Es wird dann die Funktion zum Bearbeiten der Projektdaten aufgerufen. Speichern Sie Ihre Änderungen und kehren Sie zu dieser Seite zurück. Ihre Änderungen werden angezeigt, wenn Sie aus der Menüleiste die Funktion "aktualisieren" anklicken.\n</a>\n<HR>\n</td>\n</tr>'
+ '\n</table>\n</div>';
for ( var i=0;i < anzPersonen; i++)
{
PersonText += '\n<div ID="layer' + i + '">\n<table>\n\n<tr>\n<td width="50%" align="right" valign="TOP">\n<BR>\n<B>';
if (p[i].aufgabe) PersonText += p[i].aufgabe + '\n</B>\n</td>';
else PersonText += 'Aufgabe nicht definiert' + '\n</B>\n</td>';
PersonText += '\n<td width="50%">\n<BR>\n<B>';
if (p[i].name) PersonText += p[i].name + '\n<BR>\n</B>';
if (p[i].firma) PersonText += p[i].firma + '\n<BR>';
if (p[i].abt) PersonText += p[i].abt + '\n<BR>';
if (p[i].bereich) PersonText += p[i].bereich + '\n<BR>';
if (p[i].strasse) PersonText += p[i].strasse + '\n<BR>';
if (p[i].ort) PersonText += p[i].ort + '\n<BR>';
if (p[i].telefon) PersonText += 'Tel.: ' + p[i].telefon + '\n<BR>';
if (p[i].fax) PersonText += 'Fax: ' + p[i].fax + '\n<BR>';
if (p[i].email) PersonText += '\n<a href="mailto:' + p[i].email + '">' + 'eMail: ' + p[i].email + '\n</a>\n<BR>';
PersonText += '\n</td>\n</tr>\n</table>\n</div>';
}
return (PersonText);
}
/*
Jetzt wird das zu erstellende Dokument zusammengesetzt und ausgegeben
*/
var ProjektDok = Kopf();
ProjektDok += DivAuswahl();
ProjektDok += DivMenu();
ProjektDok += Personen();
ProjektDok += Fuss();
if (d[0].test == 'ja')
{
test = window.open('testip','testip');
test.document.open ('text/html');
test.document.write(ProjektDok);
test.document.close();
}
else
{
document.open ('text/html');
document.write(ProjektDok);
document.close();
}
</script>
Auf die Art und Weise lassen sich flexibel verschiedenste Daten, die extern gespeichert sind in HTML-Seiten verarbeiten.
Die Lösung ist zu dem vielseitig erweiterbar und erlaubt die totale externalisierung aller Seitenstrukturen, um Layout, Design extern zu definieren und dann daraus die gewünschten Seiten zu erzeugen.
Hoffe, nicht zu komplex geworden zu sein.
Gruß
Günter
P.S. Der Einbau einer Testfunktion ist sehr empfehlenswert, da diese Lösung gleichzeitig den Quellcode der Seite total versteckt. Der ist nur sichtbar, wenn der erzeugte Text in einem neuen Fenster ausgegeben wird. Ansonsten sieht man nur solch kryptischen Text wie in der function Personen()
Wow! Vielen Dank! Ich glaube, diese Infos haben mir gefehlt! So sollte der Broadcast vielleicht doch noch was werden! ;-)
Gruss
Luna
Hi Luna! <- Soviel Zeit muss sein
Was benötigt so ein Konstruktor alles und wie kann ich dem angeben, er soll externe Daten aus einer anderen Datei als HTML anzeigen lassen?
Also, wie schon gesagt, der Begriff Konstruktor wurde hier vielleicht falsch verstanden.
Aber zum Einbinden von Dateien in JS gibt es einen sehr schönen Artikel hier: http://www.teamone.de/selfaktuell/artikel/javascript/file-open/index.htm.
VG Simon