פרויקט דוגמה להורדה
יש להוסיף בראש הדף (לפני המחלקה הראשונה) את הקוד הבא:
בחלק Load של הדף יש להגדיר את WebBrowser ולצורך הדוגמה נכתוב בתוכו את ה-html:
נגדיר מתודה שתשלח מידע אל צד js:
יש להוסיף בראש הדף (לפני המחלקה הראשונה) את הקוד הבא:
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")] [ComVisible(true)]
//[ComVisibleAttribute(true)]
public partial class Form1 : Form
{ ... }
בחלק Load של הדף יש להגדיר את WebBrowser ולצורך הדוגמה נכתוב בתוכו את ה-html:
private void Form1_Load(object sender, EventArgs e)
{
// 4. Set the ObjectForScripting property in the
// form's constructor or a Load event handler.
// The following code uses the form class
// itself for the scripting object. // Component Object Model (COM) must be able
// to access the scripting object. // Use [ComVisible(true)] in order to make your
//form visible to COM
// (add the ComVisibleAttribute attribute to your form class). webBrowser1.ObjectForScripting = this;
webBrowser1.DocumentText =@"<html><head> <script>
// the js function to call from the c# side:
function myFoo(arg) { alert(arg); } </script> </head><body>send code to c# side: <br/> <input type='text' id='snir' value='snir send to c#'></input> <button onclick='window.external.Test(document.getElementById('snir').value)'> call client C# code from javscript code</button> </body> </html>";
}
נגדיר מתודה שתקבל את המיד מצד js:
// get message from the webpage's js [ComVisible(true)] public void Test(string arg) { MessageBox.Show(argt, "C# side"); }
נגדיר מתודה שתשלח מידע אל צד js:
private void SendToWebpage() { webBrowser1.Document.InvokeScript( "myFoo", new String[] { textBox1.Text } ); }