Anfängerfrage
Hans
- javascript
1 Struppi0 Der Martin
Hallo,
ich sehe immer wieder zwei unterschiedliche Funktionsaufrufe für JavaScript:
<div onkeyup="namen();">
<div onkeyup="javascript:namen();">
Was bringt das "javascript:" ?
Danke,
Hans
ich sehe immer wieder zwei unterschiedliche Funktionsaufrufe für JavaScript:
Ich auch und wundere mich genauso wie du.
<div onkeyup="namen();">
<div onkeyup="javascript:namen();">
Was bringt das "javascript:" ?
Gar nichts, es ist ein Unsinninges und überflüssiges Label, aber irgendwer hat irgendwann mal diesen Unsinn verbreitet und er hält sich weiterhin hartnäckig.
Obwohl ich hier schon dutzende Male gefragt habe, woher dieser Unsinn kommt, bekam ich darauf noch nie ein Antwort.
Struppi.
Danke Euch erst mal für die Antworten.
Obwohl ich hier schon dutzende Male gefragt habe, woher dieser Unsinn kommt, bekam ich darauf noch nie ein Antwort.
Vielleicht wenn man mit mehreren Scriptsprachen arbeitet (jscript, vbscript, ...)? Um eine seperate JS-Datei einzubinden muss man ja auch <script src="xyz.js" type="text/javascript"></script> schreiben.
Hans
Vielleicht wenn man mit mehreren Scriptsprachen arbeitet (jscript, vbscript, ...)? Um eine seperate JS-Datei einzubinden muss man ja auch <script src="xyz.js" type="text/javascript"></script> schreiben.
Was heißt auch? Wo ist hier ein Sprunglabel?
Aber tatsächlich habe ich diese Diskussion mal verfolgt, es gab aber dafür keinen Hinweis, das du tasächlich mit einem Label die Skritpsprache auswählen kannst.
Struppi.
[code=html]
<script language="VBScript">
Sub BtnClick
MsgBox "VB OnClick"
End Sub
</script>
<script language="JScript">
function BtnClick() {
alert('JS OnClick')
}
</script>
<button onclick="VBScript:btnClick">VBScript</button>
<button onclick="JScript:btnClick()">JScript</button>
[/code]
Allerdings ist das Label javascript: total überflüssig.
<button onclick="VBScript:btnClick">VBScript</button>
<button onclick="JScript:btnClick()">JScript</button>
Führt bei mir zumindest (IE 7) in beiden Fällen nur das VBScript aus.
Struppi.
<button onclick="VBScript:btnClick">VBScript</button>
<button onclick="JScript:btnClick()">JScript</button>Führt bei mir zumindest (IE 7) in beiden Fällen nur das VBScript aus.
Aber nicht wenn man Groß und Kleinschreibung berücksitigt.
<button onclick="VBScript:BtnClick">VBScript</button>
<button onclick="JScript:BtnClick()">JScript</button>
Toll, was der IE alles kann ;-)
Struppi.
Hallo,
<script language="VBScript">
Sub BtnClick
MsgBox "VB OnClick"
End Sub
</script>
<script language="JScript">
function BtnClick() {
alert('JS OnClick')
}
</script>
Hm, ich dachte immer, VBScript und JScript arbeiten mit demselben Window?
Sind globale Funktionen in VBScript keine Methoden von window? (Dann würde JScript die Funktion ja nur überschreiben...)
Mathias
Hi
Hm, ich dachte immer, VBScript und JScript arbeiten mit demselben Window?
Sind globale Funktionen in VBScript keine Methoden von window? (Dann würde JScript die Funktion ja nur überschreiben...)
Wenn ich mich richtig erinnere haben beide Scriptbereiche einen getrennten Scope, aber wenn jemand etwas überschreibt, dann ist es VBScript.
Nach wie vor ist VBScript die dominante Scriptsprache im IE.
Aber für eine korrekte Antwort müsste ich mich erst wieder durch die Tiefen der MSDN durchwühlen.
Hallo,
Wenn ich mich richtig erinnere haben beide Scriptbereiche einen getrennten Scope, aber wenn jemand etwas überschreibt, dann ist es VBScript.
Ich glaube, sie können gegenseitig globale Funktionen aufrufen und überschreiben:
<script language="VBScript">
Sub a
MsgBox "VBScript a"
End Sub
</script>
<script language="JScript">
a();
</script>
<script language="JScript">
function a () {
alert("JScript a");
}
a();
function b () {
alert("JScript b");
}
</script>
<script language="VBScript">
b
</script>
<script language="VBScript">
Sub b
MsgBox "VBScript b"
End Sub
b
</script>
Mathias
Hi,
Vielleicht wenn man mit mehreren Scriptsprachen arbeitet (jscript, vbscript, ...)?
Die Scriptsprache der Eventhandler ist (wenn überhaupt - echte Browser unterstützen eh nur Javascript) m.W. nur global für alle Event-Handler über das entsprechende meta-Element (<meta http-equiv="Content-Script-Type" content="text/javascript">) auswählbar.
cu,
Andreas
@@Hans:
Vielleicht wenn man mit mehreren Scriptsprachen arbeitet (jscript, vbscript, ...)?
Nein!
Wenn du Eventhandler als HTML-Attribute notierst (was ohnehin nicht state of the art ist), muss in sämtlichen im Dokument vorkommenden dieselbe Scriptsprache verwendet werden. Und zwar jene, die im HTTP-Header-Feld "Content-Script-Type" bzw. dessen Äquivalent als 'meta'-Angabe angegeben ist.
Das Fehlen einer solche Angaben bei Verwendung von Eventhandler-Attributen ist ein Fehler! Browser raten in diesem Fall JavaScript.
Live long and prosper,
Gunnar
Hi,
Obwohl ich hier schon dutzende Male gefragt habe, woher dieser Unsinn kommt, bekam ich darauf noch nie ein Antwort.
ehrlich nicht? Hm. Meiner Ansicht nach kommt die Unsitte vom Pseudoprotokoll "javascript:", welches z.B. in <a href> zur Anwendung kam, als man noch der Meinung war, wann immer etwas klickbar sei, müsse es ein Link sein. Auch diese Meinung hält sich übrigens erschreckend hartnäckig ...
Cheatah
Obwohl ich hier schon dutzende Male gefragt habe, woher dieser Unsinn kommt, bekam ich darauf noch nie ein Antwort.
ehrlich nicht? Hm.
Nein, zumindest nicht von Leuten die sowas benutzen.
Meiner Ansicht nach kommt die Unsitte vom Pseudoprotokoll "javascript:", welches z.B. in <a href> zur Anwendung kam, ...
Das ist auch meine Vermutung, die aber noch nie Bestätigt wurde.
Struppi.
Hi,
Obwohl ich hier schon dutzende Male gefragt habe, woher dieser Unsinn kommt, bekam ich darauf noch nie ein Antwort.
ehrlich nicht? Hm.
Nein, zumindest nicht von Leuten die sowas benutzen.
okay, das sehe ich ein. Die meisten Leute, die solche Dinge benutzen, scheinen es vorzuziehen, darauf angesprochen zu schweigen :-)
Cheatah
Hallo,
<div onkeyup="namen();">
<div onkeyup="javascript:namen();">
Was bringt das "javascript:" ?
nichts. Überhaupt nichts.
Genauer gesagt: Es definiert an der Stelle eine Sprungmarke, die man etwa mit einem goto-Befehl anspringen könnte - wenn Javascript einen goto-Befehl kennen würde. Sonst ist es einfach nutzlos.
So long,
Martin