#include "EvaluateAsync.h" #include "WebPage.h" #include "WebPageManager.h" #include "JsonSerializer.h" #include EvaluateAsync::EvaluateAsync(WebPageManager *manager, QStringList &arguments, QObject *parent) : SocketCommand(manager, arguments, parent) { } void EvaluateAsync::start() { QString script = arguments()[0]; QString jsonArgs; if (arguments().length()>1){ jsonArgs = arguments()[1]; } else { jsonArgs ="[]"; } QString eval_script = QString("(function(){" " for(var i=0; icurrentFrame()->addToJavaScriptWindowObject("CapybaraInvocation", &invocation_stub); page()->currentFrame()->addToJavaScriptWindowObject("CapybaraAsync", this); page()->currentFrame()->evaluateJavaScript(eval_script); } void EvaluateAsync::asyncResult(QVariantList result) { JsonSerializer serializer; finish(true, serializer.serialize(result)); } void EvaluateAsync::asyncResult(QVariant result) { JsonSerializer serializer; finish(true, serializer.serialize(result)); }