بديل سهل جافا سكريبت لو (خ) = ذ ل JScript لغة الذي يتم استخدامه عند تحديد خيارات CDO.Message

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

سؤال

ولدي صفحة ASP المكتوبة في JScript الذي يرسل رسائل البريد الإلكتروني باستخدام CDO.Message. لتحديد خادم SMTP (وخيارات أخرى) أنا أفعل شيئا من هذا القبيل:

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

والآن، وهنا يأتي الصيد. لدي هذا الرمز في قائمة بذاتها تتضمن الملفات التي قمت تدرج في صفحة HTML كما جافا سكريبت حتى أستطيع أن تشغيل وحدة الاختبارات ضدها في متصفح (باستخدام JsUnit الخ). لدي جافا سكريبت كائنات وهمية (خادم، طلب، الخ) التي تخلق بيئة ASP وهمية للتعليمات JScript البرمجية المضمنة. المشكلة الوحيدة لقد تركت هي مع وضع خيار CDO.Message. منذ بناء الجملة f(x) = y الذي يتم استخدامه في المقتطف رمز أعلاه غير صالح جافا سكريبت (غير صالح المعامل الأيسر)، وأنا لا يمكن تشغيل هذه القطعة من التعليمات البرمجية (كما هو) داخل المتصفح. أنا حاليا مجرد تجاوز في بلدي اختبار وحدة مع شرط أن يكتشف ما إذا كانت البيئة حقا ASP.

وأنا لا أعتقد أن هناك حلا جافا سكريبت لهذا. أنا أبحث عن بناء جملة البديل (التي قد تستخدم واجهات اكتف مختلفة) لتحديد الخيارات CDO.Message التي من شأنها أيضا أن جافا سكريبت صحيح نحويا.

هل كانت مفيدة؟

المحلول

وأنا أحسب الجواب عند النظر إلى رمز المثال C ++ على الموقع http://msdn.microsoft.com/en-us/library/ms526318 (EXCHG.10) .aspx اتصال .

والحل هو إجراء الإحالة صراحة إلى الملكية Value:

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

وبهذه الطريقة، رمز أعلاه هو جافا سكريبت ساري المفعول مما يمكن اختبار مع كائن تكوين وهمية.

نصائح أخرى

ولقد كان لديها نفس المشكلة عند الكتابة من جانب الخادم جافا سكريبت لIIS، هذا النحو f(x) = y كانت فاشلة في مدقق بناء الجملة بلدي IDE ل. وكان الحل وجدت مفيدة ل JScript تعليقات مشروطة مثل ذلك:

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

وويضع مؤشر منخفض [0] في نهاية <م> إلا عند التشغيل في مشغل JScript مايكروسوفت. ولكن، باعتراف الجميع بلدي الحل هو hacky قليلا. أعتقد أنه في معظم الحالات لك هو الأنظف، وذلك بفضل لتقاسم.

و-Simon

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top