PRB: مشاركة عملاء عنصر التحكم WebBrowser الإعدادات العمومية

الأعراض

مشاركة كافة الأجهزة المضيفة لعنصر تحكم WebBrowser نفس إعدادات إنترنت العمومية.


تستضيف عنصر تحكم WebBrowser التجارية مثل مستعرض America Online (AOL) تتأثر بهذه المشكلة. على سبيل المثال، تحديد صفحة رئيسية افتراضية ل AOL في تفضيلات WWW AOL تحدد نفس الصفحة الرئيسية الافتراضية لكل من AOL وإنترنت إكسبلورر، حتى عندما يتم استخدام IE بشكل منفصل من AOL.


يتم تصنيع منتجات الجهات الأخرى التي تمت مناقشتها هنا قبل موردين مستقلين عن Microsoft. نقدم أي ضمان، سواء ضمنياً أو صريحا، بخصوص أداء تلك المنتجات أو كفاءتها.

الحل

معظم إعدادات إنترنت العمومية، يوجد أي أسلوب المعتمدة لحفظ مجموعة من الخصائص لكل مضيف المستعرض تلقائياً.


ومع ذلك، بعض خيارات التنزيل، مثل ما إذا كان سيتم تحميل ActiveX التحكم أم لا، يمكن تجاوزها والمحددة على أساس كل مضيف.

الحالة

يعتبر هذا السلوك حسب التصميم.

مزيد من المعلومات

كما هو موثق في SDK عميل إنترنت (إينيتسدك)، تستضيف WebBrowser تنفيذ خاصية ambient DISPID_AMBIENT_DLCONTROL على واجهة الإرسال الافتراضية الخاصة بهم لتجاوز الإعدادات العمومية لخيارات التحميل.


يوضح النموذج WALKALL في إينيتسدك (\InetSDK\Samples\Walkall) هذه التقنية لمضيف MSHTML. يمكن استخدام أسلوب مماثل في المستعرض المضيفين لتحقيق نفس التأثير.


MSHTML كما سيطلب عامل مستخدم جديد عبر DISPID_AMBIENT_USERAGENT عند التنقل بالنقر فوق الارتباطات التشعبية. يمكن إبطال هذه الخاصية المحيطة، ولكن لم يتم استخدامه عند برمجياً استدعاء أسلوب التنقل؛ كما لا يؤدي خاصية userAgent تنقل إلى DOM سلوك الكائن أو كلينتينفورميشن تغيير-ستعكس هذه الخاصية دوماً سلسلة عميل المستخدم الخاص ب Internet Explorer الخاصة.


مضيف MFC عنصر التحكم WebBrowser يمكن أن تؤثر هذه الخصائص المحيطة بسهولة بتجاوز الأسلوب أونامبينتبروبيرتي الفئة CWnd مقرها الاستضافة:

BOOL CWBHostView::OnAmbientProperty(COleControlSite* pSite,                                    DISPID dispid, VARIANT* pvar)
{
USES_CONVERSION;
// Change download properties - no java, no scripts...
if (dispid == DISPID_AMBIENT_DLCONTROL)
{
pvar->vt = VT_I4;
pvar->lVal = DLCTL_NO_SCRIPTS | DLCTL_NO_JAVA
| DLCTL_NO_RUNACTIVEXCTLS | DLCTL_NO_DLACTIVEXCTLS;

return TRUE;
}

// Change user agent for this web browser host during hyperlinks
if (dispid == DISPID_AMBIENT_USERAGENT)
{
CString strUserAgent("MyWebBrowserHost");

pvar->vt = VT_BSTR;
pvar->bstrVal = ::SysAllocString(T2OLE(strUserAgent));

return TRUE;
}

return CView::OnAmbientProperty(pSite, dispid, pvar);
}

DISPID_AMBIENT_ * و DLCTL_ * القيم التي تم تعريفها في Mshtmdid.h (\InetSDK\Include\MSHTMDID. H).

المراجع

لمزيد من المعلومات حول تطوير الحلول المستندة إلى ويب ل Microsoft Internet Explorer، قم بزيارة مواقع Microsoft التالية على الويب:
خصائص

رقم الموضوع: 183412 - آخر مراجعة: 08‏/01‏/2017 - المراجعة: 1

تعليقات