Javascript調用C#代碼_javascript技巧

來源:互聯網
上載者:User
本文介紹的是嵌入在.Net的WebBrowser控制項中顯示的HTML檔案中的Javascript如何調用C#代碼。現在在用戶端程式中嵌入網頁的做法已經非常普遍了,例如騰訊的新聞彈出框之類的。
.Net的WebBrowser用的核心應該還是IE的。IE中,window對象有個external屬性,這個屬性提供了一個外部介面。可以執行宿主代碼。要通過這個屬性來調用C#方法,其宿主對象必須是ComVisible的。例如,我們在一個Form上放置一個WebBrowser控制項,另外準備一個方法OpenForm供js調用。
複製代碼 代碼如下:

[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public partial class Main : KSBiz.UI.KSForm
{
public Main()
{
InitializeComponent();
}
//其餘略
public void OpenForm(string s)
{
BasicInfo.CustomerList f = new StockManage.BasicInfo.CustomerList();
f.Show();
f.MdiParent = this;
webBrowser1.Visible = false;
}
}

再準備一個html檔案:
複製代碼 代碼如下:

<body>
<h1>歡迎使用</h1>
<a href='#' onclick='window.external.OpenForm("test");' >客戶列表</a>
</body>

在HTML檔案中,就可以通過如上的方法來調用C#的方法。
在FormLoad事件中,為WebBrowser控制項設定url,以及設定指令碼執行的宿主:
複製代碼 代碼如下:

private void Main_Load(object sender, EventArgs e)
{
System.IO.FileInfo file = new System.IO.FileInfo("top.htm");
// WebBrowser控制項顯示的網頁路徑
webBrowser1.Url = new Uri(file.FullName);
// 將當前類設定為可由指令碼訪問
webBrowser1.ObjectForScripting = this;
}

這樣就好了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.