您的位置:首页 > 其它

浏览器自动刷新网上指定页面的两种方式(我知道的)

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的,知道的看到我提了一下马上就能想起来了。。。

等到最后,我解决这个问题的方法是:因为我用的是谷歌浏览器,所以我直接进谷歌的更多工具中扩展程序商店里面下了个刷新页面的扩展程序,哈哈哈。

要转载记得声明来源哦,敲这么多字也不容易。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  浏览器 页面刷新