From 625962e90a0646f48e13fff5e2f88f781c5dd9b5 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 27 Nov 2015 17:09:06 +0100 Subject: Add support for onreadystatechange JS callback from XMLHttpRequest. Refs #80 --- daemon/jskitobjects.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'daemon/jskitobjects.cpp') diff --git a/daemon/jskitobjects.cpp b/daemon/jskitobjects.cpp index d9ef02f..481c077 100644 --- a/daemon/jskitobjects.cpp +++ b/daemon/jskitobjects.cpp @@ -413,6 +413,16 @@ void JSKitXMLHttpRequest::setOnload(const QJSValue &value) _onload = value; } +QJSValue JSKitXMLHttpRequest::onreadystatechange() const +{ + return _onreadystatechange; +} + +void JSKitXMLHttpRequest::setOnreadystatechange(const QJSValue &value) +{ + _onreadystatechange = value; +} + QJSValue JSKitXMLHttpRequest::ontimeout() const { return _ontimeout; @@ -541,6 +551,16 @@ void JSKitXMLHttpRequest::handleReplyFinished() } else { qCDebug(l) << "No onload set"; } + + if (_onreadystatechange.isCallable()) { + qCDebug(l) << "going to call onreadystatechange handler:" << _onreadystatechange.toString(); + QJSValue result = _onreadystatechange.callWithInstance(_mgr->engine()->newQObject(this)); + if (result.isError()) { + qCWarning(l) << "JS error on onreadystatechange handler:" << JSKitManager::describeError(result); + } + } else { + qCDebug(l) << "No onreadystatechange set"; + } } void JSKitXMLHttpRequest::handleReplyError(QNetworkReply::NetworkError code) -- cgit v1.2.3