سؤال

وهنا المشكلة:

ولدي هوك في IE أن يتفاعل على الحدث WebBrowser.OnNavigateComplete2 تحليل محتوى الوثيقة لبعض المعلومات الدقيقة.

وتتضمن تلك الوثيقة الإطارات، لذلك أنا أنظر في HTMLDocument.frames. لكل واحد، وأنا أنظر إلى الخاصية document.body.outerHTML للتحقق من المحتوى.

والمشكلة هي، سلسلة أنا أبحث عن أبدا يظهر هناك، في حين يتم عرضه في صفحة خاتمة. لذا، أنا أبحث في المكان الخطأ؟ إذا كان معروضا عندما يتم تحميل الصفحة بالكامل، ثم انها تحميلها في مرحلة ما، أليس كذلك؟ ولكن في الكائن الذي يجب أن ننظر؟

وراجع للشغل، وأنا لا أعرف إذا كان هذا هو من أي أهمية، ولكن الصفحة أنا في البحث في يأتي من تطبيق ASP.NET.

public void OnNavigateComplete2(object pDisp, ref object url)
{
    document = (HTMLDocument)webBrowser.Document;

    mshtml.FramesCollection frames = document.frames;
    for (int i = 0; i < frames.length; i++)
    {
        object refIdx = i;
        IHTMLWindow2 frame = (IHTMLWindow2)frames.item(ref refIdx);
        string frameContent = frame.document.body.outerHTML;
    }
}

وشكرا لكم على مساعدتكم.


وrams وأطلق هذا الحدث عدة مرات لكل صفحة، ولذا فإنني أحسب أنه كان في كل مرة يتم تحميل مؤطرة، حتى لو كنت لا تحصل للقبض على واحد وأنا أبحث عنه. إذا لم يكن كذلك، ما من شأنه أن يكون الحدث للقبض على محتوى إطارات؟

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

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

المحلول

هل تعرف اسم / معرف الإطار الذي يبحثون عن المحتوى؟ إذا كان الأمر كذلك، في الحدث NavigateComplete2 الخاص بك، يمكنك الحصول على مرجع إلى الإطار مثل

iFrame frm = document.frames(<your frame id>);

int readyState=0;

while(frm.readystate !=4){
// do nothing. be careful to not create an endless loop
}

if(frm.readyState==4){
   // get your content now
}

وHTH

نصائح أخرى

هل تستخدم نوعا من الترابط؟ تشغيل المتصفح في موضوع مستقل عبث حقا حتى الأشياء. محاولة تنفيذه في STAThread ومعرفة ما اذا كان يمكنك الحصول على النتيجة الصحيحة.

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

هل يمكنك أن تصف ما تحاول تحقيقه؟

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