Ich habe diesen Code gesehen und kratze mich am Kopf, um zu entscheiden, wie es funktioniert.
%Vor%doppelter Doppelpunkt? Dies ist von der Verwendung eines Philips-Sprachmikrofons von einer Webseite.
Irgendeine Idee, was dieser Doppelpunkt bedeutet? Es scheint mir ein Syntaxfehler zu sein, aber es funktioniert! (zumindest in IE).
Ich konnte in einem gescannten Handbuch eine obskure Referenz finden Microsoft Office Infopath 2003 . Es scheint eine JScript
-Syntax zu sein:
ein Doppelpunkt wird als Trennzeichen verwendet zwischen der Skript-ID und dem Ereignis Name
Ich schätze, das ist nicht Teil (oder nicht länger Teil) der ECMAScript-Implementierung des Internet Explorers, sondern gehört (oder gehörte) zur Implementierung von Microsoft Office.
Dies ist eine Erweiterung der Javascript-Sprache, die von Microsoft implementiert wurde. Der Zweck besteht darin, einen Ereignishandler für ein COM-Objekt anzugeben, auf das auf der Seite verwiesen wird. SpeechMikeControl
ist der global definierte Name des COM- (und / oder ActiveX-) Objekts:
OBJECT
oder einem anderen Element, das eine id
Eigenschaft von SpeechMikeControl
oder SpeechMikeControl
irgendwo zuvor im Javascript deklariert SPMEventButton
ist der Name des COM-Ereignisses, das vom Objekt " SpeechMikeControl
" unter "who-knows-what-Umstände" ausgelöst wird.
Der Doppelpunkt ist eine Anweisung, um den Funktionskörper als Handler mit dem Ereignis des Steuerelements zu verbinden.
Ich bin mir ziemlich sicher, dass das keine gültige Javascript-Syntax ist.
Wenn es im IE funktioniert, aber nicht in anderen Browsern, könnte es sein, dass IE es als eine andere Skriptsprache behandelt (vielleicht VBScript? obwohl ich mich nicht erinnere, dass es auch einen Doppelpunktoperator hat? Nicht sicher, welche andere Sprache es ist) könnte aber sein.)
Die Frage darf kein Duplikat von Was bedeutet "::" ( doppelter Doppelpunkt) tun in Javascript? , aber die Antwort ist: es ist ein Syntaxfehler.
Im Folgenden:
%Vor%Das Schlüsselwort function im globalen Kontext am Anfang eines Ausdrucks zeigt eine Funktionsdeklaration an. Nach muss ein Bezeichner sein, der der Funktionsname ist. Danach muss der Name ein öffnender Gruppierungsoperator sein '(', formale Parameterliste und schließender Gruppierungsoperator '). Also zwischen function und () kann nur eine einzige Kennung für erlaubte Zeichen sein (das ist kein reserviertes Wort oder zukünftiges reserviertes Wort, aber das ist kein Problem hier).
Das Zeichen ":" (Doppelpunkt) ist ein Interpunktionszeichen und kann nicht in einem Bezeichner erscheinen. Daher muss einen Syntaxfehler verursachen, wenn der Code als Javascript behandelt wird.
Vielleicht hat IE eine Erweiterung der Sprache, ich kenne ECMAScript nicht gut genug, um zu wissen, ob das zulässig ist, aber ich würde nicht erwarten, dass andere Implementierungen bricht
>Wie in dieser Antwort von erwähnt wird Was macht '::' (doppelter Doppelpunkt) in Javascript?
> ::
ist ein ES2016-Operator, der eine Abkürzung für bind darstellt. Diese Antwort soll diejenigen unterstützen, die seit der ES2016-Spezifikation auf ::
gestoßen sind, gilt jedoch nicht für den Kontext, in dem diese Frage gestellt wurde.
Tags und Links javascript jscript