当前位置: 首页 > wzjs >正文

衡水wap网站建设费用精品课网站制作

衡水wap网站建设费用,精品课网站制作,云霄城乡建设局网站,腾讯云阻止网站访问版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 MSHTML是微软公司的一个COM组件,该组件封装了HTML语言中的所有元素及其属性,提供了对网页HTML文档的多种接口…

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

MSHTML是微软公司的一个COM组件,该组件封装了HTML语言中的所有元素及其属性,提供了对网页HTML文档的多种接口,通过这些接口,可以访问指定网页的所有元素,实现很多高级功能。

23.4.1 引用MSHTML

在VB.Net中是不能直接使用MSHTML组件的,必须先在项目中添加对MSHTML的引用:

点击菜单【项目】|【添加引用】,在弹出的【引用管理器】左侧点击【COM】,从中间列出的所有COM组件中找到“Microsfot Html Object Library”,并勾选它前面的复选框,最后按下“确定”按钮。

图23-18 引用MSHtml组件

如果添加引用成功,那么在【解决方案资源管理器】中展开“引用”就会看到“MSHTML”了。

 

图23-19 引用“Microsfot Html Object Library”

MSHTML类似于一个命名空间,包含了大量的类、属性、方法,可以通过【对象浏览器】查看这些成员。点击菜单【视图】|【对象浏览器】,或者按下“F2”按键都可以调出【对象浏览器】窗口,然后从左侧树状列表中点开Microsoft.mshtml-mshtml查看提供的成员。

 

图23-20 使用【对象浏览器】查看

23.4.2 获得网页元素信息

MSHTML提供了丰富的接口,以HTMLDocument为例,实际在MSHtml中包括了多个相关成员:HTMLDocument、HTMLDocumentClass、IHTMLDocument、IHTMLDocument2……IHTMLDocument8(比较奇怪的是C#不能使用IHTMLDocument6-IHTMLDocument8的接口,而VB.Net可以)。除了使用HTMLDocumentClass会提示错误:当类“HTMLDocumentClass”的程序集配置为嵌入互操作类型时,不允许使用对该类的引用。也就是说这个是不能用的外,其余IHTMLDocument到IHTMLDocument5各提供了一部分HTMLDocument的属性和方法。MSHTML.HTMLDocument(这里加上MSHTML与C#自带的HTMLDocument区别)相比HtmlDocument类虽然用法类似,但是提供了更多的属性和方法。

【例 23.15【项目:code23-009】获得网页信息。

        private void btnGetInfo_Click(object sender, EventArgs e)

        {

            mshtml.HTMLDocument doc;

            doc = (mshtml.HTMLDocument)WebBrowser1.Document.DomDocument;

            txtInfo.Text = "协议:" + doc.protocol + "\r\n";

            txtInfo.Text += "状态:" + doc.readyState + "\r\n";

            txtInfo.Text += "编码:" + doc.charset + "\r\n";

            txtInfo.Text += "Cookie" + doc.cookie + "\r\n";

            txtInfo.Text += "创建日期:" + doc.fileCreatedDate + "\r\n";

            txtInfo.Text += "修改日期:" + doc.fileModifiedDate + "\r\n";

            txtInfo.Text += "文件大小:" + doc.fileSize + "\r\n";

            txtInfo.Text += "更新日期:" + doc.fileUpdatedDate + "\r\n";

            txtInfo.Text += "最后修改日期:" + doc.lastModified + "\r\n";

            txtInfo.Text += "Mime类型:" + doc.mimeType + "\r\n";

            txtInfo.Text += "文档标题:" + doc.nameProp + "\r\n";

            txtInfo.Text += "跳转来源:" + doc.referrer + "\r\n";

            txtInfo.Text += "安全证书:" + doc.security + "\r\n";

            txtInfo.Text += "文档标题:" + doc.title + "\r\n";

            txtInfo.Text += "链接地址:" + doc.url + "\r\n";

        }

运行结果如下图所示:

图23-21 使用MSHTML.HTMLDocument获得网页信息

相比23.2节和23.3节学习的HtmlDocument类和HtmlElement类,MSHTML还提供了网页元素更详细的分类,比如IHTMLScriptElement(脚本元素)、IHTMLStyleSheet(样式表)、IHTMLFormElement(表单元素)等等,这些不同的元素分类有着自己的特殊属性和方法。

【例 23.16【项目:code23-010】获得网页元素信息。

        //获得脚本信息

        private void btnScriptInfo_Click(object sender, EventArgs e)

        {

           

            txtInfo.Text = "";           

            mshtml.IHTMLDocument2 doc;

            doc = (mshtml.IHTMLDocument2)WebBrowser1.Document.DomDocument;

            mshtml.IHTMLElementCollection scrs = doc.scripts;

            mshtml.IHTMLScriptElement scr;

            for(int i  = 0;i< scrs.length;i++)

            {

                scr = (mshtml.IHTMLScriptElement)scrs.item(i);

                txtInfo.Text += scr.text + "\r\n";

                txtInfo.Text += "====================" + "\r\n";

            }

        }

        //获得表单信息

        private void btnFormInfo_Click(object sender, EventArgs e)

        {

            txtInfo.Text = "";

            mshtml.HTMLDocument doc = (mshtml.HTMLDocument)WebBrowser1.Document.DomDocument;

            mshtml.IHTMLElementCollection eles = (mshtml.IHTMLElementCollection)doc.forms;

            mshtml.IHTMLFormElement frm;

            for(int i = 0;i< eles.length;i++)

            {

                frm = (mshtml.IHTMLFormElement)eles.item(i);

                txtInfo.Text += "action:" + frm.action + "\r\n";

                txtInfo.Text += "encoding:" + frm.encoding + "\r\n";

                txtInfo.Text += "method:" + frm.method + "\r\n";

                txtInfo.Text += "name:" + frm.name + "\r\n";

                txtInfo.Text += "target:" + frm.target + "\r\n";

                txtInfo.Text += "====================" + "\r\n";

            }

        }

        //获得样式表信息

        private void btnStyleInfo_Click(object sender, EventArgs e)

        {

            txtInfo.Text = "";

            mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)WebBrowser1.Document.DomDocument;

            mshtml.HTMLStyleSheetsCollection styles = doc.styleSheets;

            mshtml.IHTMLStyleSheet style;

            for (int i = 0; i < styles.length; i++)

            {

                try

                {

                    style = (mshtml.IHTMLStyleSheet)styles.item(i);

                    txtInfo.Text += style.cssText + "\r\n";

                    txtInfo.Text += "====================" + "\r\n";

                }

                catch (Exception ex)

                {

                    //

                }

            }

        }

运行结果如下图所示:

图23-22 使用MSHTML获得表单信息

【例 23.17【项目:code23-011】获得表格的内容。

        private void btnGetInfo_Click(object sender, EventArgs e)

        {

            mshtml.HTMLDocument doc = (mshtml.HTMLDocument)WebBrowser1.Document.DomDocument;

            mshtml.IHTMLElementCollection tabs = doc.getElementsByTagName("table");

            //循环分析每个表格

            for(int k = 0;k< tabs.length;k++)

            {

                mshtml.HTMLTable tab = tabs.item(k);

                //设置表格背景色

                tab.bgColor = "#D8D8CC";

                //设置表格边框大小

                tab.border = 2;

                //设置表格边框颜色

                tab.borderColor = "#ffff00";

                //表格行数

                int rowCount = tab.rows.length;

                for(int i  = 0;i< rowCount;i++)

                {

                     mshtml.HTMLTableRow myrow = tab.rows.item(i);

                    //表格某行的单元格数

                    int cellCount;

                    cellCount = myrow.cells.length;

                    //两个循环获得单元格中的Html代码

                    for(int j = 0;j< cellCount;j++)

                    {

                        mshtml.HTMLTableCell mycell;

                        mycell = myrow.cells.item(j);

                        txtInfo.Text += mycell.innerHTML + " ";

                        //如果单元格文本是我们需要的,那么修改它

                        if (mycell.innerText == "输入学生姓名:")

                            mycell.innerText = "修改学生姓名:";

                    }

                    txtInfo.Text += "\r\n";

                }

                txtInfo.Text += "===============" + "\r\n";

            }

        }

上面的代码通过HTMLDocumentgetElementsByTagName("table")方法获得所有的表格,返回一个IHTMLElementCollection类型,再通过IHTMLElementCollectionlength属性循环获得每个表格。最后从每个表格行数和行内的列数单元格数组成的双循环获得每一个单元格。

运行结果如下图所示:

图23-23 获得表格内容并修改表格

23.4.3 增加网页元素

23.4.4 为网页文档和元素增加事件处理

学习更多vb.net知识,请参看vb.net 教程 目录

学习更多C#知识,请参看C#教程 目录


文章转载自:

http://yYvLqAju.psxwc.cn
http://w2tI8SK7.psxwc.cn
http://6Kaw3TfZ.psxwc.cn
http://klYPTZug.psxwc.cn
http://nNbfW2Ud.psxwc.cn
http://Ath3qTJg.psxwc.cn
http://dil2IyOs.psxwc.cn
http://6eV73WOU.psxwc.cn
http://lSvQT9aM.psxwc.cn
http://MPIvyuSH.psxwc.cn
http://roYmub97.psxwc.cn
http://TKPEHcZ0.psxwc.cn
http://alDwu9Kv.psxwc.cn
http://Y23jgU3P.psxwc.cn
http://qunIaGKT.psxwc.cn
http://QHoTT3LG.psxwc.cn
http://Y08hkPZR.psxwc.cn
http://A00XTchx.psxwc.cn
http://Ngi3wALB.psxwc.cn
http://TCMhN396.psxwc.cn
http://nmy8Yks9.psxwc.cn
http://5pShwZtU.psxwc.cn
http://q1GsUmWs.psxwc.cn
http://tjIJeJ7N.psxwc.cn
http://nuP9ruES.psxwc.cn
http://hE1c8CZg.psxwc.cn
http://PUvdxEy8.psxwc.cn
http://X6O6Qfjk.psxwc.cn
http://1DTMjnqc.psxwc.cn
http://LPdOVv4u.psxwc.cn
http://www.dtcms.com/wzjs/692665.html

相关文章:

  • ps个人网站建设wordpress dux 1.6
  • 全国住房与城乡建设部网站银川网站建设哪家优
  • 做排版的网站wordpress多久被收录
  • 如何将自己做的网页做成网站手机制作动画软件app免费
  • 上海网站seo招聘高端的家居行业网站开发
  • 产品介绍网站设计怎么做交换友情链接的条件
  • 百度怎么创建网站成都房地产信息网官网
  • app小程序网站开发是什么网站建设创新互联
  • 官方网站开发方案电子商务网站概要设计
  • 企业网站网站建设网站建设空间多大
  • 青岛胶州网站建设北京做网站开发公司有哪些
  • 网站建设相关新闻物流公司简介模板
  • 网站 开发逻辑通辽住房和城乡建设厅网站
  • 部门网站建设总结免费外贸网站制作
  • 怎么做集团网站2022年互联网营销师如何报名
  • 网站开发免费视频播放器企业网站优化公司
  • 广州网站建设阿里云千山科技做网站好不好
  • 国外html模板网站国内新闻
  • 大宗商品交易平台是什么福州seo扣费
  • 虚拟主机使用教程北京seo专员
  • 网页和网站的关系ui设计招聘
  • 环保部网站官网建设项目审批海口高风险地区
  • 苏州智能网站开发51游戏
  • 怎么做网站实惠wordpress文章总是发布失败
  • 最新网站源码购物网站图片的放大怎么做的
  • 北理离线《网站开发与应用》福州网站制作工具
  • 网站建设知名wordpress自助添加链接
  • 天空彩票网站怎么做网站开发怎么入账
  • 贵阳做网站公司吗免费发布网站seo外链
  • 张家港网站建设优化百度竞价开户费用