Javascript 将jQuery注入WPF应用程序中的WebBrowser控件

Javascript 将jQuery注入WPF应用程序中的WebBrowser控件,javascript,c#,jquery,wpf,webbrowser-control,Javascript,C#,Jquery,Wpf,Webbrowser Control,我有一个很简单的问题。任务是在WPF应用程序中仅显示加载在WebBrowser控件中的部分网页。我查了一下堆栈上的问题,但没有一个解决方案对我有帮助,也没有解决问题。所以我学到的是,解决这个问题的最简单方法是将javascript/jquery函数注入加载页面的头部,然后使用WebBrowser.InvokeScript调用它来进行DOM操作,但每当我调用我的函数时,就会出现脚本错误 以下是我尝试过的函数,但都不起作用(我对jQuery或javascript一无所知,所以我真的不知道如何解决这个

我有一个很简单的问题。任务是在WPF应用程序中仅显示加载在
WebBrowser
控件中的部分网页。我查了一下堆栈上的问题,但没有一个解决方案对我有帮助,也没有解决问题。所以我学到的是,解决这个问题的最简单方法是将javascript/jquery函数注入加载页面的头部,然后使用
WebBrowser.InvokeScript
调用它来进行DOM操作,但每当我调用我的函数时,就会出现脚本错误

以下是我尝试过的函数,但都不起作用(我对jQuery或javascript一无所知,所以我真的不知道如何解决这个问题):

我在堆栈上找到的这个(第二个答案)

我阅读了
prepend
prependTo
上的jQuery文档,从中学到我尝试了:(这里我只是尝试让脚本不抛出错误)

简单的
警报
工作正常。下面是我用来注入脚本的代码:

private void PageLoaded(object sender, NavigationEventArgs e)
{
        var webBrowser = (WebBrowser) sender;

        var doc = (mshtml.HTMLDocument)webBrowser.Document;
        var head = doc.getElementsByTagName("head").Cast<mshtml.HTMLHeadElement>().First();
        var script = (mshtml.IHTMLScriptElement)doc.createElement("script");

        script.text = "function _changeDivs() { $('body >').hide(); $('#dex1').show().prependTo('body'); }";
        head.appendChild((mshtml.IHTMLDOMNode)script);

        webBrowser.InvokeScript("_changeDivs");
 }

你有什么错误。。。你真的有一个
$是未定义的
或类似的东西吗?。。。您正在将哪个url加载到web浏览器控件。。。你拥有那个网站的来源吗?尝试
alert($('body').prepend)
只是为了检查您是否获得
函数
[object]
…我在加载facebook登录页面时没有网站源代码。当我尝试
alert($('body').prepend)
时,仍然会出现错误:error:Script error,code:0,URL:,然后它会显示COMException,但无法真正读取有用的内容。代码错误也为0,因此我甚至无法通过其代码搜索错误:/
function _changeDivs() {
    $('body').prepend($('#dex1')); 
}
private void PageLoaded(object sender, NavigationEventArgs e)
{
        var webBrowser = (WebBrowser) sender;

        var doc = (mshtml.HTMLDocument)webBrowser.Document;
        var head = doc.getElementsByTagName("head").Cast<mshtml.HTMLHeadElement>().First();
        var script = (mshtml.IHTMLScriptElement)doc.createElement("script");

        script.text = "function _changeDivs() { $('body >').hide(); $('#dex1').show().prependTo('body'); }";
        head.appendChild((mshtml.IHTMLDOMNode)script);

        webBrowser.InvokeScript("_changeDivs");
 }
webBrowser.LoadCompleted += PageLoaded;