konto usunięte

Temat: QWebView::loadFinished i AJAX

Piszę sobię projekt oparty głównie o QWebView i otóż mam taką sytuację - sygnał loadFinished emituje się w słusznym momencie zakończenia ładowania strony. Ale w dzisiejszych łebdwazerowych (web 2.0 albo i może już wyżej) czasach, mamy wszędzie JS, który robi różne ciekawe rzeczy przed po i w trakcie. Być może coś przegapiłem albo nie doczytałem, bo noce są krótkie, ale czy da się jakoś prosto, nie sięgając do głębin (czyli pewnie gdzieś do samych POSTów / GETów), zauważyć kiedy skończył się wykonywać JS?

Żeby zwizualizować:

1. Strona z formularzem kończy się ładować
2. Ja podpinam to sygnału loadFinished swój slot, który przez evaluateJavaScript wyszukanego QWebElement'u robi mi this.value = 'xyz'.
3. Jednakże, jest sobie funkcja w JS, która czyści wszystkie pola formularza w zdarzeniu onload elementu body.

Niestety wynik działania tegoż jest niedeterministyczny - w zależności od tego, który JS - mój czy strony wykona się pierwszy - albo mam swoją wartość w formularzu albo mam pustkę.

Wszelkie sugestie mile widziane.
Janek Ziemkiewicz

Janek Ziemkiewicz tester
oprogramowania

Temat: QWebView::loadFinished i AJAX

Wygląda na to, że oba skrypty wykonują się po wczytaniu strony kto pierwszy się wykona ten lepszy.
Ja widzę dwa rozwiązania na szybko są dwie opcje:
1. W twoim skrypcie js ogarnąć czy tamten już się wykonał
2. Przed rozpoczęciem wczytywania tej strony wyłączyć obsługę js jw slocie obsługującym sygnał evaluateJavaScript włączyć obsługę.

Następna dyskusja:

QWebView i ciasteczka




Wyślij zaproszenie do