加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在WebBrowser控件中注入Javascript

发布时间:2020-12-16 01:48:49 所属栏目:百科 来源:网络整理
导读:这里有关于 Windows窗体的很棒的教程 How to inject Javascript in WebBrowser control? 我尝试过它,效果很好 但问题是在wpf应用程序中无法识别所使用的对象.所以我要问的是wpf应用程序中下面函数的等价物.谢谢. HtmlElement head = webBrowser1.Document.Ge
这里有关于 Windows窗体的很棒的教程

How to inject Javascript in WebBrowser control?

我尝试过它,效果很好

但问题是在wpf应用程序中无法识别所使用的对象.所以我要问的是wpf应用程序中下面函数的等价物.谢谢.

HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
string srJquery = File.ReadAllText("jquery.txt");
element.text = srJquery;
head.AppendChild(scriptEl);

上面的函数在Windows窗体应用程序c#4.0中完美地工作,但在WPF应用程序中无法识别使用的对象,如HtmlElement.

解决方法

这有用吗?

private void WebBrowser_LoadCompleted
       (object sender,System.Windows.Navigation.NavigationEventArgs e)
    {
        var webBrowser = sender as WebBrowser;

        var document
           = webBrowser.Document as mshtml.HTMLDocument;
        var ahref
           = document.getElementsByTagName("A").Cast<mshtml.IHTMLElement>().First();
        ahref.setAttribute(
           "onmouseenter","javascript:alert('Hi');",1);
    }

您需要的是Microsoft.mshtml(.net API而不是MS office one)参考.

另请参阅此代码,以获取使用WebBrowser的ObjectForScripting属性的WPF webbrowser控件,它可以帮助您注入javascript …

http://blogs.msdn.com/b/wpf/archive/2011/05/27/how-does-wpf-webbrowser-control-handle-window-external-notify.aspx

如果这有帮助,请告诉我.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读