2

我有一个无人值守的触摸屏信息亭应用程序,它需要能够在发生网络中断后自动重新加载浏览器主页。目前,浏览器将显示“无法连接到互联网”错误,并等待手动重新加载,然后再继续。这可以自动化吗?

我搜索了插件并找到了一些处理自动重新加载的插件,但它们似乎在这种情况下不起作用。我猜该插件仅在加载页面时才处于活动状态,因此在这种情况下出现错误情况,可能插件未处于活动状态。

一种替代方法可能是覆盖 Chrome 显示的错误页面,但我不知道这是否可能。然后,我可以实例化一个 Javascript 计时器,例如每 n 秒尝试一次重新加载。这可能吗?

我看到一个建议使用框架来允许外框架(从不刷新)继续尝试加载内框架,但我不热衷于使用框架,除非别无选择。我还看到了一个建议,即在尝试加载页面之前使用 AJAX 调用来检查网络是否正常工作,但是如果有一种方法可以仅在错误发生时纠正错误,而不是为每个页面加载预先阻止错误,这似乎有点过头了.

顺便说一句,主机系统是Windows 7。如果可能的话,我热衷于让浏览器保持运行,而不是杀死并创建一个新的浏览器进程。

4

4 回答 4

4

如果您不想处理 chrome 扩展开发,您可以将您的网站包装在一个iframe中,然后定期从父框架刷新 iframe。这样您就无需担心操作系统问题。

于 2011-08-22T16:00:29.610 回答
0

我知道您使用的是 Chrome,但在 Firefox 中,通过覆盖netError.xhtml页面来执行setTimeout(location.reload, 10000);.

于 2014-01-08T03:59:27.917 回答
0

如果内容是从一开始就从 ajax 加载的,那么它可以简单地在页面上输出一条自定义消息,因为它通过 AJAX 进行检查。可能总是建议预防胜于补救

于 2011-08-22T13:43:36.500 回答
0

假设 linux,您可以创建一个 ifup 脚本来简单地重新启动浏览器,例如

#!/bin/sh
killall google-chrome
DISPLAY=:0 google-chrome

在 debian/ubuntu 上,编辑 /etc/network/interfaces 以包含一个 post-up 行;谷歌 ifupdown 其他发行版。


在 Windows 上,您可以使用 PowerShell 脚本执行大致相同的操作。


如果您真的想要您描述的精确行为(无需重新启动整个浏览器),我建议您开发一个插件/扩展:http ://code.google.com/chrome/extensions/getstarted.html

于 2011-08-22T13:45:46.770 回答