一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - C#在WinForm中使用WebKit傳遞js對象實現與網頁交互的方法

C#在WinForm中使用WebKit傳遞js對象實現與網頁交互的方法

2021-11-15 14:38lyflcear C#

這篇文章主要介紹了C#在WinForm中使用WebKit傳遞js對象實現與網頁交互的方法,涉及針對WebBroswer控件及WebKit控件的相關使用技巧,需要的朋友可以參考下

本文實例講述了C#在WinForm中使用WebKit傳遞js對象實現與網頁交互的方法。分享給大家供大家參考,具體如下:

有個項目要使用WebBroswer控件,并且要能傳遞一個js對象供前臺調用,用c#的WebBroswer控件很容易實現:

?
1
2
3
4
5
private void Form1_Load(object sender, EventArgs e)
{
  WebBrowser wb = new WebBrowser();
  wb.ObjectForScripting = new myClass();
}

要傳遞的js對象必須使用[ComVisibleAttribute]標記為COM 可見:

?
1
2
3
4
5
6
7
8
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
class myClass
{
  public void Test()
  {
    System.Windows.Forms.MessageBox.Show("alert:Test");
  }
}

這樣前臺就能使用window.external調用myClass的方法: window.external.Test();

如果就這樣那就簡單了 ,可偏偏項目使用的網站對IE的兼容性極差(吐槽下:個人覺得是IE太爛了,對標準的支持太差),無奈之下想找尋其他類似的WebBrowser控件,發現幾個不錯的替換控件:

GeokoFx:一個Firefox的Geoko引擎的Windows Forms包裝,google上的下載地址:http://code.google.com/p/geckofx/ 官網:http://www.geckofx.org/
WebKit.NET:webkit的.NET封裝,下載地址:http://sourceforge.net/projects/webkitdotnet/

本來決定使用GeokoFx,因為項目使用的網站用火狐打開是很快的,但是我找了幾天資料也沒發現怎么傳遞個js對象給控件,當發現Qt的webbroswer控件也是封裝的WebKit控件時,遂決定使用WebKit,但WebKit.NET也沒有直接提供傳遞對象的方法,后來發現又一個好東西:

open-webkit-sharp:對webkit.net的又一次封裝,提供了很多新功能。google上下載地址:http://code.google.com/p/open-webkit-sharp/

下面的使用就非常簡單了,下載open-webkit-sharp后,把Core文件夾和References文件夾下所有文件拷貝到你的工程目錄下,然后打開你的項目,添加引用OpenWebKitSharp.dll和WebKit.Interop.dll(如果你的項目運行在.NET Framework 2.0 或 3.5 引用 Binary_NET2文件夾下的這兩個文件,NET4.0的話就引用Binary文件夾下的這兩個dll);然后就是工具箱->選擇項->選擇OpenWebKitSharp.dll,然后從工具箱中把WebKitBrowser拖到你的窗體上.現在已經成功了一大步了,但是為了避免使用時遇到各種錯誤,我們需要先安裝兩個支持文件:

Microsoft C++ 2005 Redistributable http://www.microsoft.com/download/en/details.aspx?id=26347Windows XP/Vista/7 32/64 Bit

Apple QuickTime (Optional - for better HTML5 Support)
Ready!開始傳遞對象:

?
1
2
3
4
5
6
7
8
9
private void Form1_Load(object sender, EventArgs e)
{
  this.webKitBrowser1.Navigate("http://yourWebSiteUrl");
  this.webKitBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webKitBrowser1_DocumentCompleted);
}
void webKitBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
  this.webKitBrowser1.GetScriptManager.ScriptObject = new myClass();
}

前臺調用方式類似IE的webbroswer,也使用window.external調用,你也可以自己定義一個對象:

復制代碼 代碼如下:
this.webKitBrowser1.GetScriptManager.EvaluateScript("var obj=window.external;");

 

這樣調用的時候就能用你自己定義的對象名訪問了。

應該也有直接自己定義對象的方法,但是open-webkit-sharp中文的資料實在的不多,耐著性子看了幾天老外的論壇,一水的全是吐槽,實際解決問題的不多。等有更好的方法,也請大家不吝賜教。

希望本文所述對大家C#程序設計有所幫助。

延伸 · 閱讀

精彩推薦
  • C#Unity3D實現虛擬按鈕控制人物移動效果

    Unity3D實現虛擬按鈕控制人物移動效果

    這篇文章主要為大家詳細介紹了Unity3D實現虛擬按鈕控制人物移動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    shenqingyu060520232410972022-03-11
  • C#C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    這篇文章主要介紹了C# 實現對PPT文檔加密、解密及重置密碼的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    E-iceblue5012022-02-12
  • C#深入解析C#中的交錯數組與隱式類型的數組

    深入解析C#中的交錯數組與隱式類型的數組

    這篇文章主要介紹了深入解析C#中的交錯數組與隱式類型的數組,隱式類型的數組通常與匿名類型以及對象初始值設定項和集合初始值設定項一起使用,需要的...

    C#教程網6172021-11-09
  • C#C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    這篇文章主要介紹了C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題,簡單描述了訪問者模式的定義并結合具體實例形式分析了C#使用訪問者模式解決長...

    GhostRider9502022-01-21
  • C#C#通過KD樹進行距離最近點的查找

    C#通過KD樹進行距離最近點的查找

    這篇文章主要為大家詳細介紹了C#通過KD樹進行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    帆帆帆6112022-01-22
  • C#C#裁剪,縮放,清晰度,水印處理操作示例

    C#裁剪,縮放,清晰度,水印處理操作示例

    這篇文章主要為大家詳細介紹了C#裁剪,縮放,清晰度,水印處理操作示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    吳 劍8332021-12-08
  • C#C#實現XML文件讀取

    C#實現XML文件讀取

    這篇文章主要為大家詳細介紹了C#實現XML文件讀取的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Just_for_Myself6702022-02-22
  • C#WPF 自定義雷達圖開發實例教程

    WPF 自定義雷達圖開發實例教程

    這篇文章主要介紹了WPF 自定義雷達圖開發實例教程,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下...

    WinterFish13112021-12-06
主站蜘蛛池模板: 国产精品福利一区二区亚瑟 | 欧美一级一级做性视频 | 亚洲国产成人久久综合区 | 亚洲国产第一 | 国产日本免费 | 国产在线乱子伦一区二区 | 变态 另类 国产 亚洲 | 国产精品视频第一区二区 | 欧美一级在线 | 肉蒲在线观看 | 国内在线播放 | 婷婷色在线播放 | 久久国内精品 | 四虎免费在线视频 | 99午夜高清在线视频在观看 | 国产成人h综合亚洲欧美在线 | 成人做视频免费 | 国产婷婷成人久久av免费高清 | 狗老公小说| 天天干女人| 91.prom在线观看国产 | 四虎四虎 | 7777奇米四色 | 海绵宝宝第二季全集免费观看 | 四虎影视在线影院在线观看观看 | 亚洲成在人线久久综合 | 国产精品成人 | 色婷婷天天综合在线 | 人人做人人爽人人爱 | 日韩在线资源 | 亚洲一级特黄 | 美女露尿口 | 紧缚束缚调教丨vk | 午夜一区二区福利视频在线 | 91在线 在线播放 | 亚洲国产欧美在线人网站 | 亚洲视频在线观看免费 | 亚洲成在人线视频 | 精品视频99| 日本熟hdx | 国产日韩欧美色视频色在线观看 |