01 |
using System; |
02 |
using System.Collections.Generic; |
03 |
using System.Text; |
04 |
using System.Reflection; |
05 |
using System.Windows.Forms; |
06 |
07 |
namespace HtmlWinForm |
08 |
{ |
09 |
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust" )] |
10 |
[System.Runtime.InteropServices.ComVisibleAttribute( true )] |
11 |
class HtmlControlUtil |
12 |
{ |
13 |
/// <summary> |
14 |
/// 创建WebBrowser |
15 |
/// </summary> |
16 |
/// <param name="objectForScripting"></param> |
17 |
/// <returns></returns> |
18 |
public static WebBrowser CreateWebBrower(Object objectForScripting) |
19 |
{ |
20 |
WebBrowser webBrowser = new WebBrowser(); |
21 |
webBrowser.ScriptErrorsSuppressed = true ; //禁用错误脚本提示 |
22 |
webBrowser.IsWebBrowserContextMenuEnabled = false ; //禁用右键菜单 |
23 |
webBrowser.AllowWebBrowserDrop = false ; //禁止拖拽 |
24 |
webBrowser.ScrollBarsEnabled = false ; //禁止滚动条 |
25 |
webBrowser.WebBrowserShortcutsEnabled = false ; //禁用快捷键 |
26 |
if (objectForScripting != null ) |
27 |
{ |
28 |
webBrowser.ObjectForScripting = objectForScripting; //可以提供一个Object给webBrowser控件载入的网页上的script访问 |
29 |
} |
30 |
return webBrowser; |
31 |
} |
32 |
33 |
34 |
/// <summary> |
35 |
/// 执行JavaScript带回调的方法 |
36 |
/// </summary> |
37 |
/// <param name="func">方法对象</param> |
38 |
/// <param name="args">参数</param> |
39 |
public void RunCallBackMethod(Object func, object [] args) |
40 |
{ |
41 |
Type type = func.GetType(); |
42 |
type.InvokeMember( "" , BindingFlags.InvokeMethod, null ,func, args); |
43 |
} |
44 |
45 |
46 |
/// <summary> |
47 |
/// 执行普通JavaScrtipt方法 |
48 |
/// </summary> |
49 |
/// <param name="webrowser">webrowser</param> |
50 |
/// <param name="scriptName">方法名</param> |
51 |
/// <param name="args">参数</param> |
52 |
/// <returns>返回结果</returns> |
53 |
public object RunMethod(WebBrowser webrowser, String scriptName, object [] args) |
54 |
{ |
55 |
return webrowser.Document.InvokeScript(scriptName, args); |
56 |
} |
57 |
|
58 |
59 |
/// <summary> |
60 |
/// 普通信息框 |
61 |
/// </summary> |
62 |
/// <param name="message">消息提示内容</param> |
63 |
public void MessageBoxA(String message) |
64 |
{ |
65 |
MessageBox.Show(message); |
66 |
} |
67 |
68 |
} |
69 |
} |
01 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
02 |
< html > |
03 |
< head > |
04 |
< title ></ title > |
05 |
< script type = "text/javascript" > |
06 |
window.onload = function () { |
07 |
alert("加载完成"); |
08 |
} |
09 |
function messagebox() { |
10 |
alert(window.external.MessageBoxA("测试javascript调用C#方法")); |
11 |
} |
12 |
function funcXX() { |
13 |
window.external.Run2(funcXX_callback); |
14 |
} |
15 |
function funcXX_callback(no,str) { |
16 |
alert(no); |
17 |
alert(str); |
18 |
} |
19 |
</ script > |
20 |
</ head > |
21 |
< body > |
22 |
<!-- 调用C#方法 --> |
23 |
< button onclick = "funcXX();" >JavaScript执行方法带回调</ button > |
24 |
< br />< br /> |
25 |
<!-- 调用C#方法 --> |
26 |
< button onclick = "messagebox();" >JavaScript调用C#Messagebox</ button > |
27 |
</ body > |
28 |
</ html > |
声明: 本文由(孤狼)原创编译,转载请保留链接: C# WinForm 和 javascript进行交互 使用HTML做界面