JavaScript freundliche Alternative zu dem f (x) = y JScript Idiom, das verwendet wird, wenn CDO.Message Optionen einstellen

StackOverflow https://stackoverflow.com/questions/468089

Frage

Ich habe eine ASP-Seite in JScript geschrieben, die E-Mails mit CDO.Message sendet. Für die Angabe eines SMTP-Servers (und andere Optionen) Ich bin so etwas wie dies zu tun:

mail.Configuration.Fields.Item(
    "http://schemas.microsoft.com/cdo/configuration/smtpserver") =
    "smtp.example.com";

Jetzt kommt der Haken. Ich habe diesen Code in einem eigenständigen Include-Datei, die ich in einer HTML-Seite als JavaScript enthalten, so dass ich Unit-Tests gegen sie in einem Browser ausgeführt werden kann (mit JSUnit etc.). Ich habe JavaScript Mock-Objekte (Server, Anfragen, etc.), die eine Mock ASP-Umgebung für den mitgelieferte JScript-Code erstellen. Das einzige Problem, das ich verlassen habe, ist mit der CDO.Message Option Einstellung. Da die f(x) = y Syntax, die in dem obigen Codeauszug verwendet wird ist nicht gültig JavaScript (ungültig linken Operanden), kann ich nicht dieses Stück Code ausführen in einem Browser (wie es ist). Ich bin einfach zur Zeit in meinem Unit-Test mit einem bedingten umgehen, ob die Umgebung erfaßt ist wirklich ASP.

Ich glaube nicht, dass es eine JavaScript Abhilfe dazu. Ich bin auf der Suche nach einer alternativen Syntax (das die ActiveX-Schnittstellen unterschiedlich verwenden) zu CDO.Message Optionen festlegen, die auch syntaktisch gültige JavaScript wären.

War es hilfreich?

Lösung

dachte ich die Antwort, wenn sie am C ++ Codebeispiel unter http://msdn.microsoft.com/en-us/library/ms526318 (EXCHG.10) aspx .

Die Lösung ist die Zuordnung explizit auf die Value Eigenschaft zu machen:

mail.Configuration.Fields.Item(
    "http://schemas.microsoft.com/cdo/configuration/smtpserver").Value =
    "smtp.example.com";

Auf diese Weise oberhalb der Code ist gültig JavaScript als mit einem Mock Objekt Konfiguration getestet werden.

Andere Tipps

Ich habe das gleiche Problem wurde mit beim Schreiben serverseitige Javascript für IIS, dass f(x) = y Syntax versagt in Syntaxprüfung meiner IDE. Die Lösung fand ich hilfreich war JScript bedingte Kommentare wie folgt:

f(x)/*@cc_on@if(0)*/[0]/*@end@*/ = y;

Es setzt den Index Index [0] am Ende außer , wenn in Microsoft JScript-Engine läuft. Aber zugegebenermaßen meine Lösung ist ein bisschen hacky. Ich glaube, in den meisten Fällen Ihr sauberer ist, also danke für sie zu teilen.

-Simon

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top