zoukankan      html  css  js  c++  java
  • 在C# WebBrowser控件插入JS代码,并执行!

    在C# WebBrowser控件插入JS代码,并执行!

        HtmlElement script = webBrowser.Document.CreateElement("script");
        script.SetAttribute("type", "text/javascript");
        script.SetAttribute("text", "function _func(){alert('OK')}");
        HtmlElement head = webBrowser.Document.Body.AppendChild(script);
        webBrowser.Document.InvokeScript("_func");

    WPF的WebBrowser和WinForm的WebBrowser有一定区别。

    要向其中注入javascript脚本,经过本人试验,下面一条路可以走通:

    mshtml.HTMLDocument htmlDoc = Browser.Document as mshtml.HTMLDocument;
    var head = htmlDoc.getElementsByTagName("head").Cast<HTMLHeadElement>().First();
    var script = (IHTMLScriptElement)htmlDoc.createElement("script");
    script.text ="alert('hello world')";
    head.appendChild((IHTMLDOMNode)script);

    该方法还可以注入javascript函数,在需要的时候调用 Browser.InvokeScript()即可。

    但是今天发现一个很奇怪问题。。我用该注入方法修改 document.body.style.zoom,整个页面会缩放,但是其中的flash等控件居然有问题。。

    然后我用IE8带的开发人员工具注入修改 document.body.style.zoom 则没这个问题。。。

  • 相关阅读:
    内核态内存映射
    FS 数据结构
    内存页分配/释放
    用户态内存映射
    WindowsServer 2008 TIME_WAIT
    OutOfMemoryError:修改tomcat启动参数
    windows下Tomcat添加jmx监控
    mysql 5.7.11 安装运行
    mysql 数据库备份与还原
    Win7下虚拟WiFi设置
  • 原文地址:https://www.cnblogs.com/daming1233/p/6423315.html
Copyright © 2011-2022 走看看