我有一个无人值守的触摸屏信息亭应用程序,它需要能够在发生网络中断后自动重新加载浏览器主页。此时浏览器将显示“无法连接到Internet”错误,并将等待手动重新加载,然后再继续。这可以自动化吗?
我搜索过插件并找到了一些处理自动重载的插件,但它们似乎在这种情况下不起作用。我猜这个插件只在加载页面时才处于活动状态,因此在这种情况下会出现错误情况,也许插件不活动。
一种替代方法可能是覆盖Chrome显示的错误页面,但我不知道这是否可行。然后,我可以实例化一个Javascript计时器,例如每n秒尝试重新加载一次。这可能吗?
我看到一个建议使用框架允许外框(永远不会刷新)继续尝试加载内框架,但我不热衷于使用框架,除非没有替代方案。我还看到了一个建议,在尝试页面加载之前使用AJAX调用来检查网络是否正常工作但是如果有一种方法只在发生错误时纠正错误而不是为每个页面加载预先设置错误,这似乎有点过头了
顺便说一句,主机系统是Windows 7。我希望尽可能保持浏览器运行,而不是杀死并创建一个新的浏览器进程。
答案 0 :(得分:4)
如果您不想处理Chrome扩展程序开发,可以将网站包装在iframe
中,然后定期从父框架中刷新iframe。这样您就不必担心操作系统问题了。
答案 1 :(得分:0)
如果内容是从一开始就从ajax加载的话,它就可以在页面上输出自定义消息,因为它通过AJAX进行检查。可能总是建议预防补救措施
答案 2 :(得分: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
答案 3 :(得分:0)
我知道您使用的是Chrome,但在Firefox中,通过覆盖netError.xhtml页面来执行setTimeout(location.reload, 10000);
,这是微不足道的。