HighDots Forums  

Scripts aus zwei .js-Dateien und im Body

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Scripts aus zwei .js-Dateien und im Body in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Markus Jarosz
 
Posts: n/a

Default Scripts aus zwei .js-Dateien und im Body - 08-16-2003 , 08:37 AM






Hi zusammen,

bin neu hier und werde wahrscheinlich dementsprechend schnell geflamed
Nichtsdestotrotz erhoffe ich Hilfe zu folgenden beiden Problemen:

#1)
Ich will Daten aus zwei verschiedenen Scripts auslesen und mit diesen eine
Seite aufbauen. Ergo hab ich in letzterer folgendes stehen:

<p><h1>Erste Tabelle</h1>
<table>
<script src="quelle1.js" type="text/javascript">
<!--
for (var i = 0; i < nVarAusQuelle1; i++)
document.writeln("<tr><td>" + Daten[i] + "</td></tr>");
-->
</table>
</p>

<p><h1>Zweite Tabelle</h1>
<table>
<script src="quelle2.js" type="text/javascript">
<!--
for (var i = 0; i < nVarAusQuelle2; i++)
document.writeln("<tr><td>" + Daten[i] + "</td></tr>");
-->
</table>
</p>

--> funkt nicht. Laut SelfHTML aber erlaubt.

#2)
Hab versucht, ein Formular (http://cl.zoccer.org/[vorrundeA]/setzen.html)
per w3c.org validieren zu lassen, da gerade Opera 7 meine Scripts verweigert
hat. Ergebnis: Er stößt sich (u.a.) an im Body vorkommenden Scripts. Gibts
es eine Möglichkeit, document.write[ln] wie im obigen Beispiel einsetzen zu
können, dies aber "ferngesteuert" im Header? Irgendwo müsste ich eine Art
Einstiegsknoten definieren. Oder ist dann die einzige Alternative, das ganze
HTML-Dokument per document.write[ln] generieren zu müssen?

Danke im voraus für sachdienliche Hinweise!
lg Markus Jarosz





Reply With Quote
  #2  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Scripts aus zwei .js-Dateien und im Body - 08-16-2003 , 09:55 AM






Markus Jarosz wrote:

Quote:
Ich will Daten aus zwei verschiedenen Scripts auslesen und mit diesen eine
Seite aufbauen. Ergo hab ich in letzterer folgendes stehen:

p><h1>Erste Tabelle</h1
table
script src="quelle1.js" type="text/javascript"
!--
for (var i = 0; i < nVarAusQuelle1; i++)
document.writeln("<tr><td>" + Daten[i] + "</td></tr>");
--
^^^^^
/table
^^^^^^^^
/p
So geht das nicht. Im vorliegenden Fall wird das Inline-Script (in
Abhängigkeit vom UA) nur dann berücksichtigt ausgeführt, wenn quelle1.js
nicht geladen werden kann. Zudem wurde nicht korrekt auskommentiert (`--'
ist in JavaScript der Dekrementoperator![1]) und das script-Element wurde
nicht geschlossen:

<!ELEMENT SCRIPT - - %Script; -- script statements -->

[2]

(Du bemerkst die fe lenden `O's, welche sonst für ein optionales Tag
stehen?)

Weiterhin ist das SCRIPT-Element als Kind-Element des TABLE-Elements
nicht zulässig:

<!ELEMENT TABLE - -
(CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
<!ELEMENT CAPTION - - (%inline* -- table caption -->
<!ELEMENT THEAD - O (TR)+ -- table header -->
<!ELEMENT TFOOT - O (TR)+ -- table footer -->
<!ELEMENT TBODY O O (TR)+ -- table body -->
<!ELEMENT COLGROUP - O (COL)* -- table column group -->
<!ELEMENT COL - O EMPTY -- table column -->
<!ELEMENT TR - O (TH|TD)+ -- table row -->
<!ELEMENT (TH|TD) - O (%flow* -- table header cell, table data cell-->

[3]

Du suchst daher

<script type="text/javascript" src="quelle1.js"></script>
<script type="text/javascript language="JavaScript">
<!--
...
//-->
</script>

wobei Du

A) keine Tabelle
B) das SCRIPT-Element nur innerhalb eines TH- oder TD-Elements
C) Obiges nicht und stattdessen eine serverseitige Scriptsprache
Deiner Wahl [4]

benutzt.

[1] Siehe http://www.dodabo.de/html+css/kommentare.html
[2] http://www.w3.org/TR/html4/interact/...ml#edef-SCRIPT
[3] Siehe http://www.w3.org/TR/html4/struct/ta...tml#edef-TABLE
bzw. http://www.w3.org/TR/html4/loose.dtd
[4] Zum Beispiel http://de.php.net/

Quote:
--> funkt nicht. Laut SelfHTML aber erlaubt.
<Gebetsmuehle> Auch SELFHTML ist keine goldene Q und enthält Felher
sowie unvollständige Information. </Gebetsmuehle> [psf 4.8]

Quote:
Hab versucht, ein Formular (http://cl.zoccer.org/[vorrundeA]/setzen.html)
^ ^
Dir ist klar, dass das ein ungülter URI ist? Solche Zeichen
dürfen nicht unescaped in URIs vorkommen, siehe RFC 2396:

Quote:
[...]

Uniform Resource Identifiers (URI): Generic Syntax

[...]

2.4.1. Escaped Encoding

An escaped octet is encoded as a character triplet, consisting of the
percent character "%" followed by the two hexadecimal digits
representing the octet code. For example, "%20" is the escaped
encoding for the US-ASCII space character.

escaped = "%" hex hex
hex = digit | "A" | "B" | "C" | "D" | "E" | "F" |
"a" | "b" | "c" | "d" | "e" | "f"

[...]

2.4.3. Excluded US-ASCII Characters

Although they are disallowed within the URI syntax, we include here a
description of those US-ASCII characters that have been excluded and
the reasons for their exclusion.

[...]

Other characters are excluded because gateways and other transport
agents are known to sometimes modify such characters, or they are
used as delimiters.

unwise = "{" | "}" | "|" | "\" | "^" | "[" | "]" | "`"
^^^^^^^^^
Data corresponding to excluded characters must be escaped in order to
be properly represented within a URI.

[...]

A. Collected BNF for URI

[...]

digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" |
"8" | "9"
[...]

per w3c.org validieren zu lassen, da gerade Opera 7 meine Scripts verweigert
hat. Ergebnis: Er stößt sich (u.a.) an im Body vorkommenden Scripts.
Ja, siehe oben.

Quote:
Gibts es eine Möglichkeit, document.write[ln] wie im obigen Beispiel einsetzen
zu können, dies aber "ferngesteuert" im Header?
Mit Funktionen ist das möglich:

<head>
...
<script type="text/javascript" language="JavaScript">
<!--
function foobar()
{
document.write(...);
}
//-->
</script>
...
</head>
<body>
...
<script type="text/javascript" language="JavaScript">
<!--
foobar();
//-->
</script>
...
</body>

Das löst aber höchstwarzenschweinlich Dein Problem nicht, da Du für den
Funktionsaufruf immer noch ein SCRIPT-Element brauchst, was das HTML wieder
ungültig macht. Und Du kannst foobar() nur on-the-fly aufrufen, da nach
beendetem Laden document.write(...) das aktuelle Dokument nicht mehr
ergänzt, sondern überschreibt.

Quote:
Irgendwo müsste ich eine Art Einstiegsknoten definieren. Oder ist dann die
einzige Alternative, das ganze HTML-Dokument per document.write[ln]
generieren zu müssen?
Nein, und das willst Du auch schön bleiben lassen, da Du ja auf
Besucher mit deaktiviertem JavaScript Wert legst.

Die Alternative ist eine serverseitige Scriptsprache [4], da auch mit
http://selfhtml.teamone.de/dhtml/ nicht nur Benutzer ohne JavaScript,
sondern auch noch Benutzer ohne hinreichend neuen UA nichts von
Deiner Webseite haben. Es sei denn, Du kannst eine definierte Umgebung
garantierten, wie sie beispielsweise in einem Intranet realisierbar
ist.

Im übrigen rate ich Dir dringend, vor weiteren Postings http://dcljs.de/,
die http://dcljs.de/faq/ und die http://praast.de/ffq/ zu konsultieren.


HTH

PointedEars
--
Grundsätzlicher Tip: Die Erfahrung zeigt, dass das Skripten gemäß den
Angaben in einer Dokumentation oder Referenz dem Eintippern vollkommen
wahlfreier Zeichenfolgen durchaus überlegen ist.
(Dietmar Meier in dcljs <aqok58$c1rqa$1 (AT) ID-3767 (DOT) news.dfncis.de>)



Reply With Quote
  #3  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Scripts aus zwei .js-Dateien und im Body - 08-16-2003 , 09:58 AM



Thomas 'Ingrid' Lahn vergass, folgendes zu erwähnen:

Quote:
Markus Jarosz wrote:

Ich will Daten aus zwei verschiedenen Scripts auslesen und mit diesen eine
Seite aufbauen. Ergo hab ich in letzterer folgendes stehen:

p><h1>Erste Tabelle</h1
table
script src="quelle1.js" type="text/javascript"
!--
for (var i = 0; i < nVarAusQuelle1; i++)
^^^^^^^^^^^^^^
Globale Variablen sind böse[tm]!

Quote:
document.writeln("<tr><td>" + Daten[i] + "</td></tr>");
^^ ^^
Das geht auch nicht:
http://groups.google.de/groups?as_q=...ing=d&filter=0


PointedEars



Reply With Quote
  #4  
Old   
Johann Burkard
 
Posts: n/a

Default Re: Scripts aus zwei .js-Dateien und im Body - 08-16-2003 , 10:11 AM



Thomas 'PointedEars' Lahn schrieb in de.comp.lang.javascript:

[URI-RFC]

Quote:
| Other characters are excluded because gateways and other transport
| agents are known to sometimes modify such characters, or they are
| used as delimiters.
|
| unwise = "{" | "}" | "|" | "\" | "^" | "[" | "]" | "`"
Was mich gerade zu der Frage bringt, ob es denn in Ordnung ist, die oben
genannten Chars als Begrenzer zu verwenden, denn irgendwie finde ich den
Satz "Other characters are exclude because [...] or they are used [...]"
etwas konfus.

D.h. http://bla.bla/bla\blub.html alfhsc
http://bla.bla/bla?bla=keks\blub=315733 richtig?

Johann
--
Quote:
*GESIGGT!*
Och, nö, doch nicht schon wieder. Du bist doch so bescheuert, dass Du Deine
eigenen Fürze siggst.
("Ray Banana" über mich in <7sy94xt5cg.fsf (AT) redneck (DOT) gacracker.org>)


Reply With Quote
  #5  
Old   
Markus Jarosz
 
Posts: n/a

Default Re: Scripts aus zwei .js-Dateien und im Body - 08-16-2003 , 12:11 PM



"Thomas 'PointedEars' Lahn" schreibte
Quote:
Markus Jarosz wrote:

Ich will Daten aus zwei verschiedenen Scripts auslesen und mit diesen
eine
Seite aufbauen. Ergo hab ich in letzterer folgendes stehen:
[code]

So geht das nicht. Im vorliegenden Fall wird das Inline-Script (in
Abhängigkeit vom UA) nur dann berücksichtigt ausgeführt, wenn quelle1.js
nicht geladen werden kann.
Mist, das heißt, die beiden schließen sich gegenseitig aus.

Quote:
Zudem wurde nicht korrekt auskommentiert (`--'
ist in JavaScript der Dekrementoperator![1]) und das script-Element wurde
nicht geschlossen:
Mein Fehler - in der Hitze [des Gefechts oder der Umgebungstemperaturen]
vergessen, sorry. Ich hoffe, das verändert nicht die Ausgangsproblematik

Quote:
script type="text/javascript" src="quelle1.js"></script
script type="text/javascript language="JavaScript"
!--
...
file://--
/script
Ha, Schurke - das war der benötigte Denkanstoß! Folgendes Konstrukt führt
zum Ziel:

<script src="[vorrundeA]/lmscript.js" type="text/javascript"></script>
<script type="text/javascript"> var ZATVorrunde = ZAT; </script>

<script src="[endrunde]/lmscript.js" type="text/javascript"></script>
<script type="text/javascript"> var ZATEndrunde = ZAT; </script>

Jetzt wär noch fein, wenns eine bequeme Möglichkeit gäbe, alle Variablen und
Objekte eines Scripts komfortabel zwischenzuspeichern *g*

Quote:
--> funkt nicht. Laut SelfHTML aber erlaubt.

Gebetsmuehle> Auch SELFHTML ist keine goldene Q und enthält Felher
sowie unvollständige Information. </Gebetsmuehle> [psf 4.8]
Ja, das wird mir auch immer klarer...

Quote:
Hab versucht, ein Formular
(http://cl.zoccer.org/[vorrundeA]/setzen.html)
^ ^
Dir ist klar, dass das ein ungülter URI ist? Solche Zeichen
dürfen nicht unescaped in URIs vorkommen, siehe RFC 2396: [...]
Es war mir klar, dass manchmal Probleme damit auftauchen, ja, und ich hatte
schon vor, es umzustellen.

Quote:
Gibts es eine Möglichkeit, document.write[ln] wie im obigen Beispiel
einsetzen
zu können, dies aber "ferngesteuert" im Header?

Mit Funktionen ist das möglich: [...] Das löst aber
höchstwarzenschweinlich Dein Problem nicht, [...]

Stimmt.

Quote:
Irgendwo müsste ich eine Art Einstiegsknoten definieren. Oder ist dann
die
einzige Alternative, das ganze HTML-Dokument per document.write[ln]
generieren zu müssen?

Nein, und das willst Du auch schön bleiben lassen, da Du ja auf
Besucher mit deaktiviertem JavaScript Wert legst.
Nein, das will ich primär bleiben lassen, weil mir Arbeit und Wartung zu
umständlich würde. Du hast schon Recht, Besucher mit deaktiviertem JS würden
bei mir keine Freude haben.

Quote:
Die Alternative ist eine serverseitige Scriptsprache [4], da auch mit
http://selfhtml.teamone.de/dhtml/ nicht nur Benutzer ohne JavaScript,
sondern auch noch Benutzer ohne hinreichend neuen UA nichts von
Deiner Webseite haben. Es sei denn, Du kannst eine definierte Umgebung
garantierten, wie sie beispielsweise in einem Intranet realisierbar
ist.
Hm... praktisch ja Wenn was tatsächlich bei jemandem nicht funktionieren
sollte, bekomme ich zwangsläufig Feedback. Und wenn trotz aller
JS-Bemühungen das Werkl nicht funktioniert, werde ich wohl von JS abrücken
müssen.

Quote:
Im übrigen rate ich Dir dringend, vor weiteren Postings http://dcljs.de/,
die http://dcljs.de/faq/ und die http://praast.de/ffq/ zu konsultieren.
Das tat ich, in der Tat! Sollte ich dennoch was flashc gemacht haben, bitte
ich um Vergebung und bereue zutiefst!

Danke für die Links!

lg Markus Jarosz




Reply With Quote
  #6  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Scripts aus zwei .js-Dateien und im Body - 08-16-2003 , 12:39 PM



Markus Jarosz wrote:
Quote:
"Thomas 'PointedEars' Lahn" schreibte
Markus Jarosz wrote:

Ich will Daten aus zwei verschiedenen Scripts auslesen und mit diesen
eine
^^^
[1]

Quote:
script type="text/javascript" src="quelle1.js"></script
script type="text/javascript language="JavaScript"
!--
...
file://--
-----^^^^^
Das habe ich _nicht_ geschrieben. Bitte benutze einen funktionierenden
User-Agent, dann passieren auch nicht solche unschönen Dinge wie [1]:

---> http://oe-faq.de/

Auch ist im Usenet zum Lesen und Posten eine Festbreitenschriftart, wie
beispielsweise `Courier New' ratsam.

Quote:
script src="[vorrundeA]/lmscript.js" type="text/javascript"></script
----------------^^^^^^^^^^^
*Das* *geht* *nicht**!* Lern lesen!

Quote:
script type="text/javascript"> var ZATVorrunde = ZAT; </script
Was ist `ZAT'? Und weshalb benutzt Du schon wieder globale Variablen,
obwohl ich Dir doch geraten hatte, selbige zu vermeiden?

Quote:
Jetzt wär noch fein, wenns eine bequeme Möglichkeit gäbe, alle Variablen und
Objekte eines Scripts komfortabel zwischenzuspeichern *g*
Das geht mit Cookies, Frames (clientseitig) oder Sessions (serverseitig).

Quote:
[`[' und `]' in URIs]

Es war mir klar, dass manchmal Probleme damit auftauchen,
s/manchmal/immer/

Quote:
ja, und ich hatte schon vor, es umzustellen.
Dann tu's doch einfach.

Quote:
Die Alternative ist eine serverseitige Scriptsprache [4], da auch mit
http://selfhtml.teamone.de/dhtml/ nicht nur Benutzer ohne JavaScript,
sondern auch noch Benutzer ohne hinreichend neuen UA nichts von
Deiner Webseite haben. Es sei denn, Du kannst eine definierte Umgebung
garantierten, wie sie beispielsweise in einem Intranet realisierbar
ist.

Hm... praktisch ja
-v

Quote:
Wenn was tatsächlich bei jemandem nicht funktionieren sollte, bekomme
ich zwangsläufig Feedback.
[_] Ja.

Zu viele Fische schwimmen im Teich, der nächste
Anbieter ist höchstens einen Mausklick entfernt.

Quote:
Und wenn trotz aller JS-Bemühungen das Werkl nicht funktioniert, werde
ich wohl von JS abrücken müssen.
[?] Du hast verstanden


PointedEars



Reply With Quote
  #7  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Scripts aus zwei .js-Dateien und im Body - 08-16-2003 , 12:50 PM



Johann Burkard wrote:

Quote:
Thomas 'PointedEars' Lahn schrieb in de.comp.lang.javascript:

[URI-RFC]

| Other characters are excluded because gateways and other transport
| agents are known to sometimes modify such characters, or they are
| used as delimiters.
|
| unwise = "{" | "}" | "|" | "\" | "^" | "[" | "]" | "`"

Was mich gerade zu der Frage bringt, ob es denn in Ordnung ist, die oben
genannten Chars als Begrenzer zu verwenden, denn irgendwie finde ich den
Satz "Other characters are exclude because [...] or they are used [...]"
etwas konfus.
Das ist ein einschliessendes Oder, d.h.

nein. Du darfst/solltest in URIs niemals nie nicht solche Zeichen
benutzen. Mit Begrenzungszeichen ist vielmehr so etwas gemeint:

Quote:
Geh mal auf [http://pointedears.de.vu/], da findest Du weitere
Information.
Hier wird `]' als Begrenzungszeichen benutzt, da `,' in URIs zulässig ist.

Welche Begrenzungszeichen in der Query-Komponente zulässig sind, ist ja im
RFC auch klar definiert und da gehören die obigen Zeichen eben nicht dazu.


HTH

PointedEars

P.S.: Wohin fuppt man sowas ausser nach `poster'?



Reply With Quote
  #8  
Old   
Johann Burkard
 
Posts: n/a

Default Re: Scripts aus zwei .js-Dateien und im Body - 08-16-2003 , 02:01 PM



Thomas 'PointedEars' Lahn schrieb in de.comp.lang.javascript:
Quote:
Johann Burkard wrote:
Das ist ein einschliessendes Oder, d.h.

D.h. http://bla.bla/bla\blub.html alfhsc
http://bla.bla/bla?bla=keks\blub=315733 richtig?

nein. Du darfst/solltest in URIs niemals nie nicht solche Zeichen
benutzen. Mit Begrenzungszeichen ist vielmehr so etwas gemeint:

| Geh mal auf [http://pointedears.de.vu/], da findest Du weitere
| Information.
Ich dachte, die meinen mit Delimiter einen Trenner in der URI. So kann man
sich täuschen.

Johann, F'Up 2 poster
--
Er würde mir die Füße küssen, damit ich ihn aus der Gemeinschaft der
schweren Zunge erlöse.
(Horst Leps in <3ck0yokb.fsf (AT) chrysostomos (DOT) de>)


Reply With Quote
  #9  
Old   
Markus Jarosz
 
Posts: n/a

Default Re: Scripts aus zwei .js-Dateien und im Body - 08-16-2003 , 03:21 PM



"Martin Honnen" schreibte
Quote:
Markus Jarosz wrote:

script src="quelle1.js" type="text/javascript"
!--
for (var i = 0; i < nVarAusQuelle1; i++)
document.writeln("<tr><td>" + Daten[i] + "</td></tr>");
--

Du musst entweder ein src-Attribut angeben oder aber das Script
innerhalb von <script type="text/javascript">...</script> angeben,
beides zusammen ist sinnlos.
Die SGML Kommentare <!-- --> lass besser weg.
Und vergiss das schliessende </script> nicht.
Danke - da hab ich wohl die Funktionsweise missverstanden.

lg Markus




Reply With Quote
  #10  
Old   
Dietmar Meier
 
Posts: n/a

Default Re: Scripts aus zwei .js-Dateien und im Body - 08-16-2003 , 03:37 PM



Thomas 'PointedEars' Lahn <PointedEars (AT) web (DOT) de> typed:

[RFC 2396]

Quote:
Mit Begrenzungszeichen ist vielmehr so etwas gemeint:

Geh mal auf [http://pointedears.de.vu/], da findest Du weitere
Information.

Hier wird `]' als Begrenzungszeichen benutzt, da `,' in URIs zulässig
ist.
Das velwechserst Du nun aber ganz sicher mit

Quote:
The angle-bracket "<" and ">" and double-quote (") characters are
excluded because they are often used as the delimiters around URI in
text documents and protocol fields.
Die "unwise caharacters" werden in "gateways and other transport agents"
als Begrenzer verwendet, vgl. dazu bspw. via Google die Diskussionen zu
dieser RFC-Passage in manchen Entwicklernewsgruppen.

ciao, dhgm



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.