微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

这里有关于 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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐