inline-Script oder nicht?
Tom
- javascript
Hello,
hier war die letzten Tage ein kurzer Thread, der mich auf etwas irritiert hat und auf eine andere Frage gebracht hat:
Ist JavaScript genauso eine Inlinesprache, wie es PHP ist? Darf ich überall im HTML </script ...> Bereiche unterbringen?
Funktionen des Scriptes würde man sicher im Head unterbringen und Funktionen des Projektes als externe *.js-ressource zuladen. Mir geht es hier aber um den Aufruf der JS-Funktionen. Kann ich die an jeder (passenden) Stelle der HTML-Datei durchführen oder bin ich immer an einen Handler gebunden?
Liebe Grüße aus http://www.braunschweig.de
Tom
Hi Tom.
Nein, das darfst du natürlich *nicht*. PHP wird auf dem Server ausgeführt, JavaScript auf dem Clienten. Da der Client aber am HTML Code nichts mehr ändert, kannst du da auch nicht irgendwo mit deinem script reinpratschen, da es ein anerkannter Tag ist, der sich den selben Regeln zu richten hat wie jeder andere Tag auch. Der PHP Tsag wird vom Server vorzeitig erkannt und das Script ausgeführt. Im Endcode kommt ja nichts mehr davon an.
Gruß
Hanno
Hello,
und was ist dann das?
http://selfhtml.teamone.de/javascript/objekte/document.htm#write
In diesem leicht überschaubaren Beispiel wird ein Stück JavaScript-Code embedded im HTML-Code (natürlich nicht innerhalb eines Tags) ausgeführt.
Vielleicht war "inline" hier nicht der passende Begriff.
Aber wo kann ich nachlesen, was an welcher Stelle eingebettet werden darf?
Liebe Grüße aus http://www.braunschweig.de
Tom
Hello,
nächste Frage:
kann man mit JS direkt die Eigenschaften einer CSS-Class verändern, sodass sich das dann auf alle Elemente dieser Klasse auswirkt?
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo,
kann man mit JS direkt die Eigenschaften einer CSS-Class verändern, sodass sich das dann auf alle Elemente dieser Klasse auswirkt?
Über die Collection document.styleSheets (DOM Style) greifst du auf die Liste der mit dem Dokument verbundenen CSS-Dateien zu. Über die Collection cssRules (DOM CSS) bzw. rules (MSIE) sprichst du die Regeln an des Styleshets. Die Selektoren dieser Regel lassen sich über deren Eigenschaft selectorText auslesen. Die Regel, die du verändern willst, kannst du somit über den Selektor identifizieren (z.B. ».klasse«). Über .style.eigenschaft kannst du dann eine Deklaration in die Regel einfügen. Auf deutsch heißt das:
<style type="text/css">
.a {}
.b {}
.klasse {color:red;}
.c {}
.d {}
</style>
<script type="text/javascript">
if (document.styleSheets)
var ss=document.styleSheets[0];
else
ss=false;
if (ss.cssRules)
var rules=ss.cssRules;
else
if (ss.rules)
var rules=ss.rules;
if (rules)
for (i=0; i<rules.length; i++)
if (rules.item(i).selectorText=='.klasse') {
rules.item(i).style.color='blue';
break;
}
</script>
<p class="klasse">bla</p>
Funktioniert ab MSIE 5.x und im Gecko und KHTML.
Siehe auch:
http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html
http://www.w3.org/TR/DOM-Level-2-Style/css.html
http://www.mozilla.org/docs/dom/domref/dom_style_ref.html ff.
http://msdn.microsoft.com/workshop/author/dhtml/reference/collections/stylesheets.asp, http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/obj_stylesheet.asp ff.
http://www.styleassistant.de/tips/tip38.htm
http://www.quirksmode.org/dom/tests/stylesheets.html
http://www.quirksmode.org/dom/changess.html
Mathias
nächste Frage:
kann man mit JS direkt die Eigenschaften einer CSS-Class verändern, sodass sich das dann auf alle Elemente dieser Klasse auswirkt?
http://home.arcor.de/struebig/js/lib/css_test.html
Struppi.
Hello,
komme heute auf gar keine Lösung :-(
Ich übergebe einer JavaScript-Funktion den namen einer globalen Variable und möchte, dass die Funktion den Wert dieser Variablen ändert.
Also wie in PHP:
$breite = 0;
$varname = "breite"
$$varname = 100;
Danach ist $breite == 100;
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo Tom,
globale Variablen sind global, d.h überall verfügbar. Auch in Funktionen. Die musst Du nicht als Parameter übergeben.
Der Code in Deinem Posting sieht auch garnicht wie Javascript aus. Vor allem die $s. Brauchst Du Geld -:) ? Oder ist das Thema jetzt PHP? Davon habe ich nämlich keine Ahnung.
Gruß, Jürgen
Hello,
globale Variablen sind global, d.h überall verfügbar. Auch in Funktionen. Die musst Du nicht als Parameter übergeben.
Dann muss ich aber für jede von diesen Dingern eine eigene Funktion schreiben. Oder kann man in JavaScript auch
globalVar.tuWasDamit()
schreiben und es wird dann auf diese Eigenschaft des Documentes angewendet?
Der Code in Deinem Posting sieht auch garnicht wie Javascript aus. Vor allem die $s. Brauchst Du Geld -:) ? Oder ist das Thema jetzt PHP? Davon habe ich nämlich keine Ahnung.
Wer lesen kann, ist eindeutig im Vorteil ;-) Da sthet irgendwo das Wörtchen "wie" ...
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo,
Ich übergebe einer JavaScript-Funktion den namen einer globalen Variable und möchte, dass die Funktion den Wert dieser Variablen ändert.
Also wie in PHP:
$breite = 0;
$varname = "breite"
$$varname = 100;Danach ist $breite == 100;
Eine gewöhnliche Variable im globalen Scope ist in JavaScript ein Unterobjekt (bzw. eine Eigenschaft) des window-Hostobjekts. Die Eigenschaften können über window.variablenname und über window['variablenname'] angesprochen werden. Näheres dazu erfährst du unter http://aktuell.de.selfhtml.org/artikel/javascript/oomodell/.
function bla (variablenname, wert) {
window[variablenname] = wert;
}
var breite = 0; // Auf die Variable breite kann im globalen Scope über breite, this.breite, window.breite (self.breite, u.U. top.breite), this['breite'] und window['breite'] (self['breite'], u.U. top['breite']) zugegriffen werden.
var variablenname = 'breite';
bla(variablenname, 100);
window.alert(breite); // = 100
Mathias
Hello,
in PHP:
----------
$breite = 0;
$varname = "breite"
$$varname = 100;Danach ist $breite == 100;
in JavaScript:
--------------
function bla (variablenname, wert) {
window[variablenname] = wert;
}
var breite = 0;
var variablenname = 'breite';
bla(variablenname, 100);
window.alert(breite); // = 100
Ich danke Dir sehr.
Das funktioniert bestens und ich benötige nur eine einzige Skalierungsfunktion für alle Skalierungsvariablen der Seite.
Liebe Grüße aus http://www.braunschweig.de
Tom