日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#和JS交互 WebBrowser实例

發布時間:2024/4/14 C# 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#和JS交互 WebBrowser实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 本文實現了WebBrowser的簡單例子??
  • ??
  • 1.引用System.Windows.Froms.dll ?
  • 2.引用WindowsFormsIntegration.dll ?
  • 代碼如下: ??
  • public?partial?class?MainWindow?:?Window??
  • ????{??
  • ????????public?MainWindow()??
  • ????????{??
  • ????????????InitializeComponent();??
  • ????????}??
  • ??
  • ????????private?void?TextBlock_MouseDown(object?sender,?MouseButtonEventArgs?e)??
  • ????????{??
  • ????????????Window?_w?=?new?Window();??
  • ????????????web_control?web_c?=?new?web_control("http://www.baidu.com");??
  • ????????????_w.Content?=?web_c;??
  • ????????????_w.Owner?=?this;??
  • ????????????_w.Show();??
  • ????????}??
  • ????}??
  • ??
  • ????public?class?web_control?:?UserControl??
  • ????{??
  • ????????public?System.Windows.Forms.WebBrowser?_web_browser;??
  • ????????public?web_control(string?url)??
  • ????????{??
  • ????????????_web_browser?=?new?System.Windows.Forms.WebBrowser();??
  • ????????????_web_browser.ObjectForScripting?=?new?external_dispath(this);??????
  • ???????????var?host?=?new?System.Windows.Forms.Integration.WindowsFormsHost();??
  • ????????????host.Child?=?_web_browser;??
  • ????????????Content?=?host;??
  • ????????????Loaded?+=?(senser,?e)?=>??
  • ????????????????{??
  • ????????????????????_web_browser.Navigate(url);??
  • ????????????????};??
  • ????????}??
  • ????}??
  • ??
  • ??
  • 至此,上方實現了簡單的例子(除了紅色那一句之外)??
  • ??
  • =========================================17.7.21更新以下========================================================??
  • ??
  • ???但在后來遇到要與JS交互,在webBrowser使用過程中為了C#和JS通訊,webBrowser必須設置ObjectForScripting的屬性,??
  • 它是一個object,這個object可以提供給webBrowser控件載入的網頁上的script訪問。(上方紅色語句)??
  • ??
  • ????在設置過webBrowser控件的ObjectForScripting屬性后,還需要設置應用程序對com可見,不然會拋出一個異常 ?
  • (ObjectForScripting?的類必須對?COM?可見。請確認該對象是公共的,或考慮向您的類添加?ComVisible?屬性。),可做如下設置:??
  • ??
  • ??[System.Runtime.InteropServices.ComVisibleAttribute(true)]??//使接口可見??
  • ????public?class?external_dispath??
  • ????{??
  • ????????public?web_control?m_wbcontrol;??
  • ???????????
  • ????????public?external_dispath(web_control?wb_c)??
  • ????????{??
  • ????????????m_wbcontrol?=?wb_c;??
  • ????????}???
  • ??
  • ????????public?Object?createObject(String?name)??
  • ????????{??
  • ????????????return?new?external_dispath(m_wbcontrol);??
  • ????????}??
  • ??
  • ????????public?void?closeWebDlg()??????????//為了讓JS調的,作用是關閉網頁彈窗??
  • ????????{??
  • ????????????(m_wbcontrol.Parent?as?Window).Close();??
  • ????????}??
  • ????????通過在c#這一層實現external類,來達到在點擊網頁中右上角的關閉按鈕時,關閉網頁的彈窗??
  • ?}??
  • ??
  • JS代碼:??
  • ??
  • ??$(".close-btn").on("click",function(??
  • ??
  • e){?????????????????
  • ?e.preventDefault();???????????????
  • ???TA.log({ld:'client',?id:'lhb_kx_gb'});????????????
  • ??????try{???????????????????
  • ???external.closeWebDlg();??????//調用外部的函數??
  • ??
  • ???}catch?(e){}?});??
  • ??
  • 最后疑問是external是哪里來的,JS和C#是怎么約定的,以后在學習JS后可能會有深好理解
  • 轉載于:https://www.cnblogs.com/kevinWu7/p/10163541.html

    超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

    總結

    以上是生活随笔為你收集整理的C#和JS交互 WebBrowser实例的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。