Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

VB.NET/C# and JavaScript communication

Introduction
This article is about passing data between VB.NET/C# WinForms and JavaScript.
Before reading further, let me warn you that this article is not about ASP.NET. Concepts covered in the article are applied to Desktop applications.
Background
I was working on a project which required data transfer between my VB.NET WinForms application and the JavaScript (inside an HTML page). Along the way, I hit certain problems, and trying to resolve them cost plenty of time on the web (on Google mostly), so I thought of this article as a platform for developers looking to sort out similar issues. There isn't much detail on this topic on the web apart from a couple of Hello World examples from Microsoft on MSDN.
Starting point
OK, without any further talk, I will dig in to the subject.
Hello World
To start off, we'll start with a very simple example; all this will do is call a JavaScript function from VB.NET to display an alert with message 'Hello world'. Similarly, from the HTML page using JavaScript, we'll call a VB.NET function which will again display a messagebox with the message 'Hello world'. These are the steps you need to do to make it happen:
Calling JavaScript from VB.NET
In Visual Studio, create a new WinForms application, name it anything you like.
Add an import statement like Imports System.Security.Permissions in your form1 (main form).
Add a couple of attributes to form1, like:
Collapse Copy Code
<PermissionSet(SecurityAction.Demand, Name:="FullTrust")> _
<System.Runtime.InteropServices.ComVisibleAttribute(True)> _
Public Class Form1
End Class
All they do is tell the .NET Framework that we want fulltrust and make the class visible to COM so this class is visible to JavaScript.
Add a WebBrowser control to the form and set its url property to c:\temp\mypage.html (just an example path, you should set it to the HTML page you'll be using).
Add a Button control on the form, and on its click handler, write this code:
Collapse


Ïà¹ØÎĵµ£º

javascriptЧÂʾ­Ñé̸(Ò»)

±¾ÎÄÖ÷ÒªÊdzöÓÚÓÐÅóÓÑʹÓÃÎÒÔ­À´Ð´µÄautocompleteµÄJS¿Ø¼þ¡£µ±Êý¾ÝÁ¿´óµÄʱºò£¬»á³öÏÖЧÂʼ«ÆäÂýµÄÇé¿ö£¬ÎÒÔÚÕâ¶Îʱ¼ä×ö³öµÄһЩ²âÊÔÒ²¼°Ò»Ð©¾­Ñ飬Óë´ó¼Ò·ÖÏí£¬Èç¹ûÓдíµÄµØ·½£¬»¹ÇëÖ¸³ö¡£
¾­¹ý²âÊÔ£¬ÎÒÃǻᷢÏÖÈçϵÄÇé¿ö»òÕß˵µÄ½áÂÛ£¬Èç¹ûÄúµÄ²âÊÔ½á¹ûÓëÎҵIJ»·û£¬Çë˵Ã÷Ô­Òò£¬ÒÔ±ãÏ໥ѧϰ¡£
1£©µ±Ò»¸ö½Ï´óµÄHTML×Ö· ......

Javascript±äÁ¿×÷ÓÃÓò

ÇëÏÈ¿´ÏÂÌ⣺
if(true)
{
     a = 1;
}
alert(a);  //Êä³öɶ£¿
if(true)
{
    var a = 1; 
}
alert(a);  //ÕâÓÖÊä³öʲô£¿
ÔÚfirefox3.5Ï£¬µÚÒ»¸öÊä³ö1;µÚ¶þ¸öÊä³öundefined£¡£¡£¡
ΪɶÄØ£¿ºÇºÇ£¬±¾ÈËÔÚ´Ë°àÃÅŪ¸«Ò»Ï£º
Ò»°ãÇé¿öÏÂȱʡvarÉùÃ÷ʱ£¬Ä¬È ......

javascript arguments¶ÔÏó

ÔÚjavascriptº¯ÊýÌåÄÚ£¬±êʶ·ûarguments¾ßÓÐÌØÊ⺬Òå¡£ËüÊǵ÷ÓöÔÏóµÄÒ»¸öÌØÊâÊôÐÔ£¬ÓÃÀ´ÒýÓÃArguments¶ÔÏó¡£Arugments¶ÔÏó¾ÍÏñÊý×飬עÒâÕâÀïÖ»ÊÇÏñ²¢²»Êǹþ¡£
javascriptº¯ÊýÌåÄÚ£¬argumentsÏñÊý×é(²¢²»ÊÇÕæµÄÊý×飬ÊÇÒ»¸öArguments¶ÔÏó£¬ÔÙ´ÎÇ¿µ÷)Ò»Ñù£¬ÓÐlengthÊôÐÔ£¬¿ÉÒÔ´ú±í´«¸øº¯ÊýµÄ²ÎÊýµÄ¸öÊý¡£
ÒýÓÃÒ»¸öÐÎʽ²ÎÊ ......

VBµ÷ÓÃVC DLL Ô¼¶¨´íÎó,Çó¸ßÊÖÖ¸µã

VCº¯ÊýÊÇ:extern "C" int __declspec(dllexport)PassPortRead(char *InPutData,char OuPutData[255]);
VBÉùÃ÷ÊÇ£ºPrivate Declare Function PassPortRead Lib "PPRead.dll" (ByVal InPutData As String, ByVal OutPutData As String) As Integer
Éú³ÉµÄÎļþÄÜÕý³£ÔËÐÐ,²¢ÇÒÄÜÉú³ÉÏàÓ¦Êý¾Ý,µ«ÊÇÔÚµ÷ÊÔʱÌáʾ"DLLµ÷ÓÃÔ¼¶¨´í ......

JavaScript ÖÐÎÄÂÒÂë½â¾ö·½·¨

·¢ËÍÖÐÎÄ×Ö·ûÇëÇóʱ£¬Èç¹ûʹÓÃget·½Ê½£¬ÔËÐÐÕý³££»¶øʹÓÃpost·½·¨Ôò»á³öÏÖÂÒÂë¡£ÕâÊÇÓÉÓÚÒì²½¶ÔÏóXMLHttpRequestÔÚ´¦Àí·µ»ØµÄ
responseTextµÄʱºò£¬ÊÇ°´UTF-8±àÂë½øÐнâÂëµÄ¡£Èç¹ûÄãÔ­À´µÄÍøÒ³±àÂëÊÇgb2312µÄ»°£¬µ±È»»á·¢Éú±àÂëµÄ³åÍ»ÁË£»Èç¹ûÄãÔ­À´µÄÍøÒ³±à
ÂëÊÇutf-8£¬ÄÇô¾Í²»»á³öÏÖÖÐÎÄÂÒÂëµÄÎÊÌâÁË¡£
³öÏÖÁËÖÐÎÄÂÒ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ