Hans: Anfängerfrage

Hallo,
ich sehe immer wieder zwei unterschiedliche Funktionsaufrufe für JavaScript:

<div onkeyup="namen();">

<div onkeyup="javascript:namen();">

Was bringt das "javascript:" ?

Danke,
Hans

  1. 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.

    1. 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

      1. 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.

        1. [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.

          1. <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.

            1. <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.

          2. 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

            1. 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.

              1. 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

      2. 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

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      3. @@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

        --
        „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
    2. 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

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. 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.

        1. 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

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
  2. 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

    --
    Es gibt Tage, da gelingt einem einfach alles.
    Aber das ist kein Grund zur Sorge; das geht vorbei.