Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在QT中重新加载网页并模拟重新加载javascript_Javascript_Jquery_Qt_Coffeescript_Qwebview - Fatal编程技术网

在QT中重新加载网页并模拟重新加载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

我有一个QT应用程序,它使用带有Javascript/Coffeescript和JQuery的网页与用户交互。在某些情况下,我需要重新加载javascript

然而,在javascript开始时,我设置了激活javascript方法的信号

$ = 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 ]