Название: Вопрос по QtWebkit
Отправлено: redcouch от Июль 17, 2010, 12:17
Здрасте. Нужно написать прогу, которая заполняла бы на сайте одну из нескольких форм, ставила флажок и делала сабмит. С этим всем особых проблем не возникало. Я сделал QWebView, искуственно вызывал события нажатия клавиш - через задницу, но форма заполняется. Но проблема в чем - при нажатии кнопки сабмит, например, в Хроме открывается еще одна страница, а в моем браузере не происходит ничего. В этом вся суть - без новой страницы не получается того, что мне нужно. Как можно решить проблему? Может как-то не очень ясно выразился, но если кто-то не против помочь, то мой icq 354141704.
Название: Re: Вопрос по QtWebkit
Отправлено: SimpleSunny от Июль 17, 2010, 12:41
Забыть про QtWebKit и использовать QNetworkAccessManager. Примеры работы можно найти в документации.
Название: Re: Вопрос по QtWebkit
Отправлено: redcouch от Июль 17, 2010, 15:19
Еще. <script type="text/javascript"> var url = "GetCustomerData.php?id="; // The server-side script function handleHttpResponse() { if (http.readyState == 4) { if(http.status==200) { var results=http.responseText; document.getElementById('divCustomerInfo').innerHTML = results; } } } function requestCustomerInfo() { var sId = document.getElementById("txtCustomerId").value; http.open("GET", url + escape(sId), true); http.onreadystatechange = handleHttpResponse; http.send(null); } function getHTTPObject() { var xmlhttp; if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest(); } else if (window.ActiveXObject){ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); if (!xmlhttp){ xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); } } return xmlhttp; } var http = getHTTPObject(); // We create the HTTP Object </script> <h1>Aaoiia?na?</h1> <a href="auto.ria.ua/" target="_blank">auto.ria.ua</a><br> <form method=post action=""> <label><input type="checkbox" name="ukrain" checked>Ia?aaiaeou ia oe?aeineee</label><br> <label><input type="checkbox" name="watermark" >Aiaaaeyou aioa?ia?e(aiaiue ciae)</label><br> <br> <b>Iaeneioi iauyaeaiee:</b><br> <input type="text" name="limit" value="10"> <br> <br> <label><b>Iioee aaou:</b></label><br> Io: <input type="text" name="from" value="16.05.2010"> (iai?eia?, 18.02.2010)<br> Ai: <input type="text" name="to" value=""><br> <br><label><b>Ia?ea e iiaaeu:</b></label><br> Ia?ea: <select name="marka"> <option value=""></option> <option value='1' >AC</option> </select><br> Iiaaeu: <span id='model'> <select name='model'> <option value=""></option> SELECT ID, MODEL FROM AUTO_MODEL WHERE TRADEMARK=0 </select> </span> <br>Auaa?eoa ionoia cia?aiea, anee ia iaai oeeuo?iaaou ii ia?ee eee iiaaee <br><input type="submit" name="submit" value="Nio?aieou iano?ieee"> </form> <form method='post' action = 'auto.ria.ua/index.php' target="_blank"> <h3>Ia?neia ii aeaiaciio ID</h3> Io: <INPUT TYPE="text" NAME="from_id"><br> Ai: <INPUT TYPE="text" NAME="to_id"><br> <INPUT TYPE="checkbox" NAME="parse_all">Ia?neou ANA iauyaeaiey(aa?a oa, eioi?uo iao a iienea) <br><br> <INPUT TYPE="submit" value="Ia?aou ia?neia" name="submit_ID"> </form>
В последней форме нужно сменить таргет, чтобы загружалось в этой же странице. Пытался дойти к ней с помощью webEl = webView->page()->mainFrame()->documentElement().lastChild(); Но оно как-то не особо хочет, например, я не могу вывести названия тега: qDebug() << webEl.tagName(); Как-то тяжко работать с JS, не понятно, где и что сделал не так. Как можно сменить параметр?
|