在QT中重新加载网页并模拟重新加载javascript
我有一个QT应用程序,它使用带有Javascript/Coffeescript和JQuery的网页与用户交互。在某些情况下,我需要重新加载javascript 然而,在javascript开始时,我设置了激活javascript方法的信号在QT中重新加载网页并模拟重新加载javascript,javascript,jquery,qt,coffeescript,qwebview,Javascript,Jquery,Qt,Coffeescript,Qwebview,我有一个QT应用程序,它使用带有Javascript/Coffeescript和JQuery的网页与用户交互。在某些情况下,我需要重新加载javascript 然而,在javascript开始时,我设置了激活javascript方法的信号 $ = jQuery p = rangeSliders: '#rangeSliders' m = init -> d = $.extend {}, p mm.connectBackend(d) if typeof Status
$ = jQuery
p =
rangeSliders: '#rangeSliders'
m =
init ->
d = $.extend {}, p
mm.connectBackend(d) if typeof StatusBridge is 'object'
mm =
connectBackend: (d) ->
StatusBridge.updateAirconLimit.connect (km) ->
log_debug "receiving aircon limit"
airconLimit = new KmItem
value: parseInt(km)
$(d.rangeSliders).rangeometer('getAirconLimit').trigger 'update', airconLimit
log_debug "receiving aircon limit done"
log\u debug
只需通过内部日志系统打印一条消息
如果出现错误,我将触发QWebView
的reload()
插槽:
bool WebPage::shouldInterruptJavaScript()
{
QApplication::processEvents( QEventLoop::AllEvents );
ECONNECT_LOG( Fatal, 108100004, "Javascript has permanent errors" );
emit requestReload();
return false;
}
及
在网页类之外的位置
但是,每当重新加载网页时,之后回调似乎会被注册多次:
2014-Mar-28 13:18:08;GuiBackend;4750;4750;D;108107022;../../src/Gui/StatusBridge.cc:221;Message from javascript: [ receiving aircon limit ]
2014-Mar-28 13:18:08;GuiBackend;4750;4750;D;108107022;../../src/Gui/StatusBridge.cc:221;Message from javascript: [ receiving aircon limit done ]
2014-Mar-28 13:18:08;GuiBackend;4750;4750;D;108107022;../../src/Gui/StatusBridge.cc:221;Message from javascript: [ receiving aircon limit ]
2014-Mar-28 13:18:08;GuiBackend;4750;4750;D;108107022;../../src/Gui/StatusBridge.cc:221;Message from javascript: [ receiving aircon limit done ]
2014-Mar-28 13:18:08;GuiBackend;4750;4750;D;108107022;../../src/Gui/StatusBridge.cc:221;Message from javascript: [ receiving aircon limit ]
2014-Mar-28 13:18:08;GuiBackend;4750;4750;D;108107022;../../src/Gui/StatusBridge.cc:221;Message from javascript: [ receiving aircon limit done ]
有没有办法让QT重新加载HTML和Javascript部分?或者QT处理C++与JavaScript绑定的特殊性?如果是这样,在发生崩溃的情况下,重置网页的最佳方式是什么
更新
因为这可能很重要:
我从一个槽内添加C++对象到JavaScript,它响应于
javaScriptWindowObjectCleared()
信号
2014-Mar-28 13:18:08;GuiBackend;4750;4750;D;108107022;../../src/Gui/StatusBridge.cc:221;Message from javascript: [ receiving aircon limit ]
2014-Mar-28 13:18:08;GuiBackend;4750;4750;D;108107022;../../src/Gui/StatusBridge.cc:221;Message from javascript: [ receiving aircon limit done ]
2014-Mar-28 13:18:08;GuiBackend;4750;4750;D;108107022;../../src/Gui/StatusBridge.cc:221;Message from javascript: [ receiving aircon limit ]
2014-Mar-28 13:18:08;GuiBackend;4750;4750;D;108107022;../../src/Gui/StatusBridge.cc:221;Message from javascript: [ receiving aircon limit done ]
2014-Mar-28 13:18:08;GuiBackend;4750;4750;D;108107022;../../src/Gui/StatusBridge.cc:221;Message from javascript: [ receiving aircon limit ]
2014-Mar-28 13:18:08;GuiBackend;4750;4750;D;108107022;../../src/Gui/StatusBridge.cc:221;Message from javascript: [ receiving aircon limit done ]