WebBrowser控件在Windows 8.0上睡眠后不处理Javascript计时器

WebBrowser控件在Windows 8.0上睡眠后不处理Javascript计时器,javascript,webbrowser-control,settimeout,sleep-mode,Javascript,Webbrowser Control,Settimeout,Sleep Mode,我有一个带有WebBrowser控件的WPF C应用程序。该应用程序在三种不同的平板电脑配置上运行:带IE9的Windows 7、带IE10的Windows 8.0支持连接待机,带IE11的Windows 8.1也支持连接待机 如果我们让平板电脑在应用程序运行一小时或更长时间后进入睡眠状态,然后将其唤醒,那么在Windows8.0平板电脑上,Javascript计时器回调将不再被调用。已经运行的计时器和新的计时器都不起作用。我添加了一些日志记录,Javascript本身仍然运行单击处理程序等。在

我有一个带有WebBrowser控件的WPF C应用程序。该应用程序在三种不同的平板电脑配置上运行:带IE9的Windows 7、带IE10的Windows 8.0支持连接待机,带IE11的Windows 8.1也支持连接待机

如果我们让平板电脑在应用程序运行一小时或更长时间后进入睡眠状态,然后将其唤醒,那么在Windows8.0平板电脑上,Javascript计时器回调将不再被调用。已经运行的计时器和新的计时器都不起作用。我添加了一些日志记录,Javascript本身仍然运行单击处理程序等。在这种情况下,Windows 8.1平板电脑和Windows 7平板电脑都很好

我设置了一个简单的测试页面,只有一个1小时的计时器和一个设置短超时的按钮。这类似于应用程序的超时。我在测试页面上看到了相同的行为:在Win8.1和Win7平板电脑上,当你在睡眠一小时或更长时间后唤醒他们时,1小时计时器回调很快就会被调用,按钮超时的回调也会起作用。但在Windows8.0平板电脑上,两种计时器回调都不会运行

测试页代码:

Automatic Hour Counter: <label id="autoCounter">0</label><br>
Manual Counter: <label id="manualCounter">0</label><br>
<button id="manualCount">Set timer for manual counter</button>

<script>
var autoCounter = 0;
var manualCounter = 0;

setInterval(function() {
    autoCounter++;
    $("#autoCounter").text(autoCounter);
}, 3600000);

$("#manualCount").click(function() {
    setTimeout(function() {
        manualCounter++;
        $("#manualCounter").text(manualCounter);
    }, 100);
});
</script>
如果绝对必要的话,我们可以升级Win8.0设备,但我们希望出于几个原因避免升级

有人见过这个吗?有什么想法吗

编辑:我在Win8平板电脑上尝试了IE10中的测试页面。它工作正常,因此问题只发生在WebBrowser控件上

编辑2:我找到了一个解决办法

如果我添加一个带有短超时的setInterval调用,那么在设备唤醒后,另一个计时器将回调所有工作。15秒有效,30秒无效,我不想再费心把范围缩小了

我将把这个问题留待讨论,而不是将此作为答案发布,因为我仍然希望有人有一个合适的解决方案