Элемент управления WinForms WebBrowser - получить элементы документа после AJAX? - PullRequest
0 голосов
/ 02 февраля 2010

Я использую WebControl из Windows Forms в C # и пытаюсь загрузить контент Web Ajax (я предположил, что контент является ajax). Это код страницы, полученный из проводника:

<ul id="building">
   <li id="button1" class="on">
    <div class="supply1">
     <div class="buildingimg">
      <a class="fastBuild tips" title="|Expandir Mina de metal al nivel 11" href="index.php?page=resources&session=ccec6b62991a&modus=1&type=1&menge=1&token=ae485059d2eb1d87bc6f181744a4b4ab">
       <img src="img/layout/sofort_bauen.gif" width="22" height="14" />
      </a><a class="detail_button tips slideIn" title="|Mina de metal" ref="1" id="details"
       href="#"><span class="ecke"><span class="level"><span class="textlabel">Mina de metal
       </span>10 </span></span></a>
     </div>
    </div>
   </li>

При нажатии на изображение новая панель загружается без перезагрузки всей страницы.

Как я могу смоделировать щелчок по изображению для загрузки панели?

В другом элементе управления на этой странице я используюmyWebBrowser.Document.RaiseEvent ("") Метод для имитации нажатий, но в этом случае нет никакого события onclick ... я не понимаю, как запустить загрузку панели ..

В нижней частина странице есть несколько методов javascript (я не помещаю все сценарии, потому что они большие)

PD: Извините, мой английский, я изучаю его.спасибо.

Я перечитываю код и просматриваю этот код:

function loadDetails(type)
{
    $.post(
        "index.php?page=resources&session=ccec6b62991a&ajax=1",
        { type: type},
        function(data){
            $("#detail").html(data);
            $("#techDetailLoading").hide();
            $("input[type='text']:first", document.forms["form"]).focus();

            reloadCluetip();
        }
    );
}

Может ли это быть связано с моим вопросом?

Ответы [ 2 ]

0 голосов
/ 06 июля 2012

Mythox, Я пытался сделать то же самое на той же странице, на самом деле в тот момент, когда диалоговое окно открывается идеально, и в 4 случаях более 10 я также могу начать конструирование, требуемое при открытии нового диалога. Проблема в том, что мой метод не является безопасным на 100%, но это, безусловно, один из способов найти решение. Я выкладываю код здесь.

     HtmlDocument doc = Program.BrowsingSystem.Document;
            HtmlElement ele = doc.GetElementById("button3");
            if (!ConstructionButtonIsAllowedToBePressed(ele))
                return new ActionResponse(false);
            if (ele.GetAttribute("classname").ToLower().Contains("disabled")) //the unit is disabled due to missing resources or other activities running
            {
                return new ActionResponse(false);
            }
            if (ele.GetAttribute("classname").ToLower().Contains("off")) //the unit is unreacheble at this planet level
            {
                return new ActionResponse(false);
            }

            ele = ele.FirstChild.FirstChild.FirstChild.NextSibling;

            object obj = ele.DomElement;
            System.Reflection.MethodInfo mi = obj.GetType().GetMethod("click");
            mi.Invoke(obj, new object[0]);


            semaphoreForDocCompletedEvent = WaitForDocumentCompleted(genWaitingTimeForNonEventingActions*2);

            ele = doc.GetElementById("planet");

            ele = ele.FirstChild.NextSibling.NextSibling;

            obj = ele.DomElement;
            mi = obj.GetType().GetMethod("submit");
            mi.Invoke(obj, new object[0]);

            semaphoreForDocCompletedEvent = WaitForDocumentCompleted(genWaitingTimeForNonEventingActions);
            if (!semaphoreForDocCompletedEvent)
                return new ActionResponse(false);
0 голосов
/ 09 февраля 2010

http://groups.google.com/group/microsoft.public.inetsdk.programming.webbrowser_ctl/browse_thread/thread/e5eeb4a9111b16af/97c0fd20b3deb26?hl=en&ie=UTF-8&q=idispatchex+showmodaldialog#097c0fd20b3deb26 Это для переопределения функции showModalDialog, вы также можете переопределить пользовательскую функцию.

...