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 则没这个问题。。。

  • 相关阅读:
    怎样获取节点的文本值
    怎样获取节点的名称
    怎样获取节点的类型
    Sublime Text 3
    ubuntu QT安装以及配置交叉编译环境
    Ubuntu下搭建NFS,并在开发板挂载
    Tk1上搭建turtlebot环境
    sudo dpkg --configure -a无法解决的问题
    ARM TK1 安装kinect驱动
    opencv2.4.9+vs2012安装配置
  • 原文地址:https://www.cnblogs.com/daming1233/p/6423315.html
Copyright © 2011-2022 走看看