3

Windowsフォームに関する素晴らしいチュートリアルがここにあります

WebBrowser コントロールに Javascript を挿入する方法は?

私はそれを試してみましたが、うまくいきます

しかし問題は、そこで使用されているオブジェクトが 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 では完全に機能しますが、HtmlElement などの使用されたオブジェクトは WPF アプリケーションでは認識されません。

4

4 に答える 4

5

これは機能しますか?

    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のは (MS Office ではなく .net API) リファレンスです。

ObjectForScriptingまた、javascript の挿入に役立つプロパティを使用する WPF webbrowser コントロールのこのコードを参照してくださいWebBrowser...

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

これが役立つかどうか教えてください。

于 2011-11-04T07:07:23.093 に答える
0

これは、html内でスクリプトコードを実行するためのwpfでのinvokescriptの同等性について説明しているヘルプを見つけました: http://msdn.microsoft.com/en-us/library/cc452443.aspx

于 2012-03-21T14:40:00.463 に答える