浏览器自动刷新网上指定页面的两种方式(我知道的)
2017-08-25 08:53
405 查看
昨天碰到一个小要求,要求让浏览器每隔一定时间刷新一次给定的页面,因为这个页面不是我的,我没办法对其进行任何修改,我技术也还不咋地,所以还是耗费了一番脑力的。加上后来各种问度娘,也总算是将这个问题解决了。
碰到这个问题我第一时间想到的是open(),可是他会每隔一段时间打开一个页面,时间一久浏览器上就都是这个页面了。明显不符合我的要求,然而我也不知道有没有将浏览器上指定页面关闭的方法,于是只能想别的办法。
问百度上的方法都是第一种:
使用iframe或者frameset之类的框架布局,然后加一个定时器或者之类的东西,这时最简单的方式。两行代码就搞定了。我一开始也用的这个方式,实验百度没什么问题。可是最后到具体页面的时候,因为页面的设计者使用了这么一句:$(window.parent.document.body).height用来自动适应窗口大小。但是我在外面套了一层frame之后,到.document.body这里就会报错。我想可能是因为window。parent就是指的frame了把,frame下面是没有document的,所以才会报错(个人猜测)。因为这个问题,整个页面都只能显示一半出来了,页面刷新会有很多地方刷新不出来,所以这个方法到我这算是失败了把。
还是各种看贴吧论坛才偶尔看到的第二种办法:
主要还是我对w3school的文档不都熟悉吧。其实还有一个蛮好用的方法是可以解决这个问题的。我之前也看到过,就是window的open方法。这个方法有比较多的重载的方法。其中一个window.open(url,name);允许多传入一个打开页面的名字进去,如果不是第一次打开这个页面了(name相同)那么这个方法就只会返回生成页面的一个引用(好像还会focus到那个页面)。有这个引用我们就可以达到刷新的要求了,比如在定时器里加上引用.location.href=url等等。这个方法很多,我就不仔细bb了,值得一说的是:如果在自己的页面调用待刷新的网页可能会产生一些域相关的问题,这个其实也不太好用。虽然有些要求能够达到,比如无限刷新百度首页。
两种方式各有优势劣势,第一种碰到特殊的页面布局用不了,第二种需要生成一个辅助页面在浏览器上不能关。总之还是看自己的需求吧。我这里也没有贴代码了,都只是一两个api的事,两个方法加起来不到10行代码。有兴趣的取w3school稍微看下我提到的这两个方式中的api就可以很轻松的解决问题。这还是像我一样不怎么懂这些api的,知道的看到我提了一下马上就能想起来了。。。
等到最后,我解决这个问题的方法是:因为我用的是谷歌浏览器,所以我直接进谷歌的更多工具中扩展程序商店里面下了个刷新页面的扩展程序,哈哈哈。
要转载记得声明来源哦,敲这么多字也不容易。
碰到这个问题我第一时间想到的是open(),可是他会每隔一段时间打开一个页面,时间一久浏览器上就都是这个页面了。明显不符合我的要求,然而我也不知道有没有将浏览器上指定页面关闭的方法,于是只能想别的办法。
问百度上的方法都是第一种:
使用iframe或者frameset之类的框架布局,然后加一个定时器或者之类的东西,这时最简单的方式。两行代码就搞定了。我一开始也用的这个方式,实验百度没什么问题。可是最后到具体页面的时候,因为页面的设计者使用了这么一句:$(window.parent.document.body).height用来自动适应窗口大小。但是我在外面套了一层frame之后,到.document.body这里就会报错。我想可能是因为window。parent就是指的frame了把,frame下面是没有document的,所以才会报错(个人猜测)。因为这个问题,整个页面都只能显示一半出来了,页面刷新会有很多地方刷新不出来,所以这个方法到我这算是失败了把。
还是各种看贴吧论坛才偶尔看到的第二种办法:
主要还是我对w3school的文档不都熟悉吧。其实还有一个蛮好用的方法是可以解决这个问题的。我之前也看到过,就是window的open方法。这个方法有比较多的重载的方法。其中一个window.open(url,name);允许多传入一个打开页面的名字进去,如果不是第一次打开这个页面了(name相同)那么这个方法就只会返回生成页面的一个引用(好像还会focus到那个页面)。有这个引用我们就可以达到刷新的要求了,比如在定时器里加上引用.location.href=url等等。这个方法很多,我就不仔细bb了,值得一说的是:如果在自己的页面调用待刷新的网页可能会产生一些域相关的问题,这个其实也不太好用。虽然有些要求能够达到,比如无限刷新百度首页。
两种方式各有优势劣势,第一种碰到特殊的页面布局用不了,第二种需要生成一个辅助页面在浏览器上不能关。总之还是看自己的需求吧。我这里也没有贴代码了,都只是一两个api的事,两个方法加起来不到10行代码。有兴趣的取w3school稍微看下我提到的这两个方式中的api就可以很轻松的解决问题。这还是像我一样不怎么懂这些api的,知道的看到我提了一下马上就能想起来了。。。
等到最后,我解决这个问题的方法是:因为我用的是谷歌浏览器,所以我直接进谷歌的更多工具中扩展程序商店里面下了个刷新页面的扩展程序,哈哈哈。
要转载记得声明来源哦,敲这么多字也不容易。
相关文章推荐
- 页面自动刷新两种方式
- 浏览器的自动补全问题 autocomplete,刷新页面表单元素还是展示修改后的值
- html和JavaScript,用户点击浏览器后退按钮,或者返回上一步自动刷新方式
- HTML页面实现自动刷新的2种方式
- 【JavaScript】通过JavaScript的方式,如果手机浏览器访问PC版页面,自动跳转到手机版页面
- Html页面自动刷新///客户端实现方式——不断发送请求
- 浏览器刷新页面的三种方式
- ASP.NET后台代码方式识别页面“按钮点击”和浏览器F5“刷新”事件
- 跨浏览器通用的页面刷新方式
- 详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
- ASP.NET后台代码方式识别页面“按钮点击”和浏览器F5“刷新”事件
- 网页页面自动刷新的3中实现方式
- 在使用FireFox浏览器时,经常打开新标签,页面总是不断自动刷新,解决办法!
- webstorm设置修改文件后自动编译并刷新浏览器页面
- html <meta>设置自动刷新或者几秒内跳转到指定页面
- html <meta>设置自动刷新或者几秒内跳转到指定页面
- 浏览器刷新页面的三种方式
- 修改页面浏览器自动刷新
- 用gulp-livereload实现浏览器自动刷新页面
- 将HTML页面自动保存为PDF文件并上传的两种方式(一)-前端(react)方式