C # عنصر تحكم WebBrowser عرض محتويات "مجلد خاص": لماذا المستند والوثائق دائما لاغية؟

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

  •  18-09-2019
  •  | 
  •  

سؤال

في C # WinForms، .NET Framework 3.5، مشروع مع عنصر تحكم على شبكة الإنترنت في النموذج:

... مع مرجع مشروع معين إلى Mshtmldll و WinForm Code: "باستخدام MSHTML؛" ...

  1. يمكنك تحميل "مجلد خاص"، مثل مجلد المفضلة، في المتصفح بسهولة.

  2. بعد تحميل "مجلد خاص": ما يظهر في WebBrowser هو في الأساس نوعا من عرض "Explorer": لديك اختيار أنماط عرض "Explorer" النموذجية من "التفاصيل، إلخ" تفاصيل عرض لديك مصفوفة عمود الصف، مع رؤوس عمود نمط "المستكشف" النموذجي، إلخ.

عادة ما سأحصل على "دوم WebBrowser عبر الإدلاء بالمستند، أو Domdocument المستند، إلى واجهة IHTMLDOCument2 المكشوفة بواسطة mshtml.dll:

ihtmldocument2 htmldocument = (ihtmldocument2) webbrowser1.document؛

// أيضا حاول هذا

// ihtmldocument2 htmldocument = (ihtmldocument2) webbrowser1.document.domdocument؛

// أيضا حاول هذا

// htmldocumentclass htmldocument = webbrowser1.document.document.domdocument ك htmldocumentclass؛

ولكن في هذه الحالة، عرض محتويات "مجلد خاص"، أحصل دائما على المستند باعتباره فارغا.

من المثير للاهتمام أنه يمكنك أثناء عرض مجلد خاص، مثل المفضلة، قم بإنشاء مجلد جديد وتفعل "ملف ops" آخر: أتساءل عما إذا كنت "ابتعد عن هذا" لأنني قد أوقفت وضع محمي على IE8؟

نقدر أي أفكار حول كيفية الوصول إلى DOM أثناء عرض مجلد خاص في عناصر تحكم WebBrowser.

شكرا ! مشروع قانون

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

المحلول

عرض المجلد ليس مستند HTML، حتى لا تتمكن من استخدام واجهة HTML للوصول إلى المحتوى. استخدم واجهات Shell مثل IshellBrowser و IshellView و iFolerView إذا كنت مهتما حقا بما يتم عرضه في النافذة.

نصائح أخرى

عادة ما تكون خاصية مستند WebBrowser هي فارغة حتى يتم تحميل صفحة. يمكنك تجربة هذا لتهيئة خاصية المستند:

WebBrowser1.Navigate ("حول: فارغة")؛ بينما (WebBrowser1.document.body == null) application.doents ()؛ // الآن يمكنك الوصول إلى خاصية المستندات، بما في ذلك الحصول على / ضبط Innerhtml

ومع ذلك، لست متأكدا من أن هذا سيساعدك منذ حقيقة أن خاصية المستند لاغية، في حين أنك لا تزال تشاهد ما تريد رؤيته، يقترح أنه حتى عندما تكون خاصية المستند لم تعد فارغة، فإن ذلك لن يكون الطريق للوصول إلى بيانات المجلد الخاص. ولكن يمكنك تجربة الرمز أعلاه، ثم قم بتحميل المجلد الخاص بك، ثم النظر إلى المستند ومعرفة ما تحصل عليه ...

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