2017-04-12 123 views
0

在我的應用程序中,我需要使用WebBrowser控件來處理用戶登錄。我使用WPF和它的WebBrowser控件。問題是我想顯示某個div下的網頁的一部分。我找到了一個解決方案,我需要注入一個JavaScript腳本到一個加載的HTML頁面,但我不知道如何做到這一點:(如何使用WebBrowser控件將JavaScript腳本注入到網頁中?

這是我想注入到網絡的腳本

function showHide() { 
    $('body >').hide(); 
    $('#div').show().prependTo('body'); 
} 

所以我以後可以稱呼它webbrowser1.InvokeScript("showHide");

我讀了很多關於棧的職位,但他們都指WindowsForms web瀏覽器,它不與WPF一個工作

編輯:我試着:

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

    webBrowser.Document.InvokeScript("execScript", 
      new object[] {"$('body >').hide(); $('#" + _div + "').show().prependTo('body');"}); 

} 

但是webBrowser.Document是類型的對象,我不能調用它的InvokeScript,不知道我應該投它。

感謝您的幫助。

+1

的[如何在WebBrowser控件注入Javascript腳本](http://stackoverflow.com/questions/7998996/how-to-inject-javascript-in-webbrowser-control) – Equalsk

+0

這是可能的複製不使用WPF控件,因此它不會重複... – vip1all

+0

您是否嘗試過任何操作?看來你已經把0的努力投入到你的問題中,並且努力使用答案。雖然它需要稍微改變,但這與WPF WebBrowser一起工作很好,並且是重複的... – Equalsk

回答

1

mshtml

enter image description here

添加引用在要注入的JavaScript的任何事件:

var doc = (mshtml.HTMLDocument)webBrowser1.Document; 
var head = doc.getElementsByTagName("head").Cast<mshtml.HTMLHeadElement>().First(); 
var script = (mshtml.IHTMLScriptElement)doc.createElement("script"); 
script.text = "function myFunction() { alert(\"Hello!\");}"; 
head.appendChild((mshtml.IHTMLDOMNode)script); 

無論在什麼情況下,你想從調用JavaScript的:

webBrowser1.InvokeScript("myFunction"); 

結果:

enter image description here

相關問題