Russian Qt Forum
Ноябрь 24, 2024, 04:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по QtWebkit  (Прочитано 3364 раз)
redcouch
Гость
« : Июль 17, 2010, 12:17 »

Здрасте.
Нужно написать прогу, которая заполняла бы на сайте одну из нескольких форм, ставила флажок и делала сабмит. С этим всем особых проблем не возникало. Я сделал QWebView, искуственно вызывал события нажатия клавиш - через задницу, но форма заполняется. Но проблема в чем - при нажатии кнопки сабмит, например, в Хроме открывается еще одна страница, а в моем браузере не происходит ничего. В этом вся суть - без новой страницы не получается того, что мне нужно. Как можно решить проблему?
Может как-то не очень ясно выразился, но если кто-то не против помочь, то мой icq 354141704.
Записан
SimpleSunny
Гость
« Ответ #1 : Июль 17, 2010, 12:41 »

Забыть про QtWebKit и использовать QNetworkAccessManager. Примеры работы можно найти в документации.
Записан
redcouch
Гость
« Ответ #2 : Июль 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, не понятно, где и что сделал не так.
Как можно сменить параметр?

Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 21.