在AxWebBrowser控件注入JS脚本的方法

  1. 通过new创建 AxWebBrowser 
AxSHDocVw.AxWebBrowser webBrowser = new AxSHDocVw.AxWebBrowser();

2 添加载后的完成事件DocumentComplete

    webBrowser.DocumentComplete += WebBrowser_DocumentComplete; 

     3 .加入当前页面的Controls

           
            this.toolStripContainer.ContentPanel.Controls.Add(webBrowser);

      4获取HTMLDocument元素,通过axWebBrowser1.Document元素直接获取再转换

      5 通过execScript的方法添加js脚本

 /// <summary>
        /// WebBrowser 加载完成后事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void axWebBrowser1_DocumentComplete(object sender, AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e)
        {
            this.axWebBrowser1.DocumentComplete -= axWebBrowser1_DocumentComplete;
            string jsString = @"function T(){
                                        var ele = window.document.getElementById('kw');
                                        if (ele != null && ele != undefined) {
                                            ele.setAttribute('value', '测试JS脚本注入AxWebBrowser');
                                        }
                         }   T()";
            mshtml.IHTMLWindow2 win = ((mshtml.HTMLDocumentClass)this.axWebBrowser1.Document).parentWindow;
            win.execScript(jsString, "Javascript");

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于一时的头脑发热,花了两个晚上基于AxWebBrowser写了一个浏览器MyIE。现在用这个浏览器发的帖子,有点小市民的成就感,嘿嘿。源代码可以在本人的资源里下载到,这里简单总结如下:<br><br>1、VS2005自带的WebBrowser功能较少(网上资源也不多),AxWebBrowser控件暴露的事件更多些。比如打开新窗口的控制,WebBrowser貌似没有简单的方法来实现。<br><br>2、实现标签式界面,难点有:1)所有标签共用一个地址条、状态条、导航按钮,要切换上下文,要把界面状态封装起来,我封装到 BrowserData 类里,寄存在 TabPage.Tag 属性里;2)关闭一个Tab页时,默认会激活第一个Tab页,而不会回到上一个标签,我设计了一个标签栈(_pageStack)来管理;<br><br>3、实现了状态条,赞叹VS2005的 ToolStrip 功能强大,使用起来太方便了!感谢为我们铺路的工作者们!<br><br>4、实现了收藏夹功能,跟IE实时同步,其实也很简单,就是打开 Favorite 目录,遍历目录和子目录,解析链接文件;另一个难题是调出 IE 界面,例如“Internet 选项”“整理收藏夹”“添加到收藏夹”等;<br><br>5、集成了Google、百度搜索。<br><br>6、实现了输入框的自动完成,跟IE的效果完全一致。这里再次赞叹 ToolStrip 控件的强大~~<br><br>7、实现了地址条输入框历史记录管理、搜索关键字历史记录管理<br><br>8、花的时间很短,bug很少,不过代码没什么注释,读者就费点眼神吧,呵呵 :-) <br>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值