知識:
[c-sharp]
view plaincopyprint?
- [System.Runtime.InteropServices.ComVisibleAttribute(true)]
- 這是為了將該類設定為com可訪問
-
- Url屬性:WebBrowser控制項顯示的網頁路徑
-
- ObjectForScripting屬性:該對象可由顯示在WebBrowser控制項中的網頁所包含的指令碼代碼訪問
- JavaScript通過window.external調用C#公開的方法。即由ObjectForScripting屬性設定的類的執行個體中所包含的公用方法。
-
-
- // WebBrowser控制項顯示的網頁路徑
- webBrowser1.Navigate(new Uri(System.Environment.CurrentDirectory + @"/XXX.html",
UriKind.RelativeOrAbsolute));
- // 將當前類設定為可由指令碼訪問
- webBrowser1.ObjectForScripting = this;
[System.Runtime.InteropServices.ComVisibleAttribute(true)]<br />這是為了將該類設定為com可訪問</p><p>Url屬性:WebBrowser控制項顯示的網頁路徑 </p><p>ObjectForScripting屬性:該對象可由顯示在WebBrowser控制項中的網頁所包含的指令碼代碼訪問<br />JavaScript通過window.external調用C#公開的方法。即由ObjectForScripting屬性設定的類的執行個體中所包含的公用方法。</p><p>// WebBrowser控制項顯示的網頁路徑<br />webBrowser1.Navigate(new Uri(System.Environment.CurrentDirectory + @"/XXX.html", UriKind.RelativeOrAbsolute));<br />// 將當前類設定為可由指令碼訪問<br />webBrowser1.ObjectForScripting = this;<br />
.CS
[c-sharp]
view plaincopyprint?
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Navigation;
- using System.Windows.Shapes;
- using System.Web;
- using System.Security.Permissions;
- namespace WpfApplication1
- {
- /// <summary>
- /// Interaction logic for Window1.xaml
- /// </summary>
- public partial
class Window1 : Window
- {
- public Window1()
- {
- InitializeComponent();
- Basic ds = new Basic ();
- webBrowser1.Navigate(new Uri(System.Environment.CurrentDirectory + @"/aaa.html",
UriKind.RelativeOrAbsolute));//擷取根目錄的日曆檔案
- webBrowser1.ObjectForScripting = ds;//該對象可由顯示在WebBrowser控制項中的網頁所包含的指令碼代碼訪問
- }
- private
void Button_Click(object sender, RoutedEventArgs e)
- {
- textBox1.Text = DoSomething.name;
- }
-
- }
- [System.Runtime.InteropServices.ComVisibleAttribute(true)]//將該類設定為com可訪問
- public
class Basic
- {
- public
static
string name;
- public
string Name
- {
- get {
return name; }
- set { name = value; }
- }
- public
void ClickEvent(string str)
- {
- this.Name = str;
- }
- }
- }
using System;<br />using System.Collections.Generic;<br />using System.Linq;<br />using System.Text;<br />using System.Windows;<br />using System.Windows.Controls;<br />using System.Windows.Data;<br />using System.Windows.Documents;<br />using System.Windows.Input;<br />using System.Windows.Media;<br />using System.Windows.Media.Imaging;<br />using System.Windows.Navigation;<br />using System.Windows.Shapes;<br />using System.Web;<br />using System.Security.Permissions;<br />namespace WpfApplication1<br />{<br /> /// <summary><br /> /// Interaction logic for Window1.xaml<br /> /// </summary><br /> public partial class Window1 : Window<br /> {<br /> public Window1()<br /> {<br /> InitializeComponent();<br /> Basic ds = new Basic ();<br /> webBrowser1.Navigate(new Uri(System.Environment.CurrentDirectory + @"/aaa.html", UriKind.RelativeOrAbsolute));//擷取根目錄的日曆檔案<br /> webBrowser1.ObjectForScripting = ds;//該對象可由顯示在WebBrowser控制項中的網頁所包含的指令碼代碼訪問<br /> }<br /> private void Button_Click(object sender, RoutedEventArgs e)<br /> {<br /> textBox1.Text = DoSomething.name;<br /> }</p><p> }<br /> [System.Runtime.InteropServices.ComVisibleAttribute(true)]//將該類設定為com可訪問<br /> public class Basic<br /> {<br /> public static string name;<br /> public string Name<br /> {<br /> get { return name; }<br /> set { name = value; }<br /> }<br /> public void ClickEvent(string str)<br /> {<br /> this.Name = str;<br /> }<br /> }<br />}<br />
HTML
[c-sharp]
view plaincopyprint?
- <HTML>
- <head>
- <mce:script language="JavaScript" type="text/javascript"><!--
- function Selec()
- {
- var divV=document.getElementById('div2').innerText;
- window.external.ClickEvent(divV);
- }
- // --></mce:script>
- </head>
- <Body>
- <Form>
- <div id="div1" onClick="Selec();">000000000000</div>
- <div id="div2">111111</div>
- </Form>
- </Body>
- </HTML>
<HTML><br /><head><br /><mce:script language="JavaScript" type="text/javascript"><!--<br />function Selec()<br />{<br />var divV=document.getElementById('div2').innerText;<br />window.external.ClickEvent(divV);<br />}<br />// --></mce:script><br /></head><br /><Body><br /><Form><br /><div id="div1" onClick="Selec();">000000000000</div><br /><div id="div2">111111</div><br /></Form><br /></Body><br /></HTML>
如果需要在運行時點擊按鈕後再將值傳入頁面顯示,則用下列方法傳值
this.webBrowser1.InvokeScript("js中的函數",“要傳的值”);