一个浏览器循环刷新网页的例子


class Program
{
public static void Main(string[] args)
{
int i=0;
String[] urlarray = new String[] { "http://www.baidu.com/", "http://msdn.microsoft.com/", "http://www.qidian.com/Default.aspx" };
RefreshPage repa = new RefreshPage(0, 1, urlarray, false);
while (i < 7)
{
repa.Next();
repa.FindCurrent = "No";
i++;
}
}
}


 class RefreshPage
{
int CurrentPage;
int NextPage;
String[] UrlArray;
public String FindCurrent="No";
bool Stop;
public RefreshPage(int CurrentPage, int NextPage, String[] UrlArray, bool Stop)
{
this.CurrentPage = CurrentPage;
this.NextPage = NextPage;
this.UrlArray = UrlArray;
this.Stop = Stop;
}
public void Next()
{
SHDocVw.ShellWindows sw = new SHDocVw.ShellWindows();
while (FindCurrent == "No")
{
foreach (SHDocVw.InternetExplorer Iweb in sw)
{

if (Iweb.LocationURL.StartsWith(UrlArray[CurrentPage]))
{
HTMLDocument doc2 = Iweb.Document as HTMLDocument;
HTMLScriptElement script = (HTMLScriptElement)doc2.createElement("script");
script.text = "function newDoc(url){window.location.assign(url)} t=setTimeout(\"newDoc(" + "‘" + UrlArray[NextPage] + "‘" + ")\", 5000)";
HTMLBody body = doc2.body as HTMLBody;
if (body != null)
{
body.appendChild((IHTMLDOMNode)script);
FindCurrent = "Yes";
}
else
continue;
}
}
}
CurrentPage+= 1;
NextPage += 1;
if (NextPage >= UrlArray.Length)
NextPage = 0;
if (CurrentPage >= UrlArray.Length)
CurrentPage = 0;
System.Console.WriteLine("current");
}
}

1. 首先需要引用两个dll

SHDocVw.dll

mshtml.dll

2.
本例子是按照所给出的数组,数组中存储的是将要循环访问的url,程序访问打开的网页寻找与数组的第一个url匹配的值,并且给他添加脚本,使该网页跳转到另一个url,即

数组的下一个值,使数组中所有url循环访问到。

3.
变量FindCurrent非常重要,由于浏览器打开一个网页需要时间,而程序读取确是,很快的,如果没有这个变量的判断,则代码会一直读不到当前要寻找的url。

while
(FindCurrent == "No")

同理读取到当前url,但是html内容还没有load完,也无法读到html
的body,会导致一直读不到html body,下面这个判断也非常重要

if
(body != null)

一个浏览器循环刷新网页的例子

时间: 2024-10-11 13:19:50

一个浏览器循环刷新网页的例子的相关文章

response常见应用、response细节、输出随机图片、定时刷新网页

response常见应用 向客户端输出中文数据 分别以OutputStream和PrintWriter输出 多学一招:使用HTML语言里面的<meta>标签来控制浏览器行为 思考:用OutputStream输出1,为什么用户看到的不是1? 文件下载和中文文件的下载 输出随机图片 package com.hbsi.response; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java

F5刷新网页时,出现了“如要再次显示该网页,web浏览器需要重新发送你以前提交的信息...要点击重试&quot;,如何不让出现这个对话框的解决方案

如何取消刷新页面时弹出的"重试"对话框? 找了好多类似的问题都没有我想要的答案,请大家看清楚再回答. 比如说,登录过程中,成功之后转向另一个页面success.jsp, 这时,如果刷新该页面就会出现"重试"对话框,如何不让它出现呢? 有人说用GET请求,抱歉,用户登录不可能用GET请求,数据不安全... ------解决思路---------------------- 同问,帮顶 ------解决思路---------------------- 用ajax登陆就没这

在浏览器地址栏按回车、F5、Ctrl+F5刷新网页的区别--转

其中,在地址栏按回车又分为两种情况.一是请求的URI在浏览器缓存中未过期,此时,使用Firefox的firebug插件在浏览器里显示的HTTP请求消息头如下: Host    192.168.3.174:8080User-Agent    Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0Accept    text/html,application/xhtml+xml,application/xml;q=0.9,*/*

微信浏览器返回刷新,监听微信浏览器返回事件,网页防复制

以下代码都经过iphone7,华为MT7 ,谷歌浏览器,微信开发者工具,PC端微信验证.如有bug,还请在评论区留言. demo链接:https://pan.baidu.com/s/1c35mbjM 密码:5yyf 1.移动端微信浏览器返回刷新事件,在返回后的页面上加上以下代码: <script type="text/javascript"> $(function () { var isPageHide = false; window.addEventListener('p

修改文件后浏览器自动刷新解决方案

现有编程工具的自动刷新解决方案 其实有很多工具可以做到文件一改变,浏览器自动刷新,其实这样体验也是最好的,可是由于一些原因,这些工具并不能解决所有工作场景的需求. 由于这不是本文的主要内容,只列出一些可以实现自动刷新的工具,没有进行详细展开,大家可以自行去研究下. 在Sublime下有一个插件叫做LiveStyle可以实现修改CSS后自动刷新,但是每一个CSS文件都要手动配置,不够智能.需要安装Chrome插件:Emmet LiveStyle. JetBrains公司的IDEA.WebStorm

五:webpack-dev-server 搭建本地服务以及浏览器实时刷新

一.概述 开发项目中为了保证上线,开发项目是都需要使用localhost进行开发,以前的做法就是本地搭建Apache或者Tomcat服务器.有的前端开发人员 对服务器的搭建和配置并不熟悉,这个时候需要后台开发人员进行帮忙,有的时候后台开发人员还爱答不理的.为了解决这个爱答不理的问题,webpack-dev-server出现了,它的出现告诉后台开发人员,不用你们了. webpack-dev-server的作用不只是搭建本地服务器,大家知道使用webpack可以 进行监听和打包文件,但是如果文件比较

微信域名防封 自动跳转至浏览器打开HTML网页

微信封杀微信公众号域名很热门,一天要屏蔽几十上百备案域名的兄弟有很多,不会被微信屏蔽的域名有没有?答案:肯定没!!301跳转破微信封域名技术能做域名防封吗?答案:刚开始是可以的,我们也用过,半月就被微信破了,301重定向跳转破微信封域名技术太简单!!网传微信域名防封系统能解决域名被封的问题,并且用的人还挺多,最后知道了,逗你玩的,钱花了域名还在封. 下面是301重定向跳转技术的原理:内容摘自:GEEK-feng的专栏 自动转向(Auto-Redirecting),也叫自动重定向.自动跳转,指当访

vue单页面应用刷新网页后vuex的state数据丢失问题以及beforeunload的兼容性

最近在用vue写h5项目,当使用window.location重定向页面或者刷新当前页面时, 发现当刷新网页后,保存在vuex实例store里的数据会丢失. 后来在网上查找大神的解决方案如下: export default { name: 'App', created () { //在页面加载时读取sessionStorage里的状态信息 if (sessionStorage.getItem("store") ) { this.$store.replaceState(Object.as

一个实用的C#网页抓取类代码分享

一个实用的C# 网页抓取类 模拟蜘蛛,类中定义了超多的C#采集文章.网页抓取文章的基础技巧,下面分享代码: using System; using System.Data; using System.Configuration; using System.Net; using System.IO; using System.Text; using System.Collections.Generic; using System.Text.RegularExpressions; using Sys