问题描述:
通过winform调用js 而我在js中写了一个函数 比如 function aa(bb)
{
alert(typeof(bb))
}
而我在winform中调用js aa函数时给bb参数传入的类型是winform中datatable类型,然而在执行弹出对话框时的结果是js不能识别的类型,本人在网上搜索了很多相关方面的资料都未解决该问题。望有人帮忙解决,在此对帮忙解决问题的人士致敬!
通过winform调用js 而我在js中写了一个函数 比如 function aa(bb)
{
alert(typeof(bb))
}
而我在winform中调用js aa函数时给bb参数传入的类型是winform中datatable类型,然而在执行弹出对话框时的结果是js不能识别的类型,本人在网上搜索了很多相关方面的资料都未解决该问题。望有人帮忙解决,在此对帮忙解决问题的人士致敬!
解决方案 »
- 我的VS2010突然无法调试
- 如何遍历tabControl里的所有tabPage?
- 图片打水印 出现“GDI+中发生一般性错误 ” 标题够长!~~~~~~
- C#能否读取客户端控件的value
- winform 中 清除 graphic 画的矩形
- 虚拟主机配置的网页无法打开
- 请各位来看下 BuildManager.GetReferencedAssemblies(),MSDN我看了没看懂,请帮解释下它返回的是哪些集
- 又一个datatable的select问题。
- 怎样通过一个button的单击事件执行其它应用程序。如setup.exe!!!!!!!!!!!再线等待!!!!!!!!!!!!!!!!!!!!!!!马上给
- .net 分布式部署
- 怎样为PropertyGrid排序(属性类别排序,属性排序)
- WCF自承载 客户端连接超时问题
WebBrowser.ObjectForScripting 属性:取或设置一个对象,该对象可由显示在 WebBrowser 控件中的网页所包含的脚本代码访问。
使用该属性启用 WebBrowser 控件承载的网页与包含 WebBrowser 控件的应用程序之间的通信。使用该属性可以将动态 HTML (DHTML) 代码与客户端应用程序代码集成在一起。为该属性指定的对象可作为 window.external 对象(用于主机访问的内置 DOM 对象)用于网页脚本。可以将此属性设置为希望其公共属性和方法可用于脚本代码的任何 COM 可见的对象。可以通过使用 ComVisibleAttribute 对类进行标记使其成为 COM 可见的类。若要从客户端应用程序代码调用网页中定义的函数,请使用可从 Document 属性检索的 HtmlDocument 对象的 HtmlDocument.InvokeScript 方法。
using System.Windows.Forms;
using System.Security.Permissions;[PermissionSet(SecurityAction.Demand, Name="FullTrust")]
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public class Form1 : Form
{
private WebBrowser webBrowser1 = new WebBrowser();
private Button button1 = new Button(); [STAThread]
public static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
} public Form1()
{
button1.Text = "call script code from client code";
button1.Dock = DockStyle.Top;
button1.Click += new EventHandler(button1_Click);
webBrowser1.Dock = DockStyle.Fill;
Controls.Add(webBrowser1);
Controls.Add(button1);
Load += new EventHandler(Form1_Load);
} private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.AllowWebBrowserDrop = false;
webBrowser1.IsWebBrowserContextMenuEnabled = false;
webBrowser1.WebBrowserShortcutsEnabled = false;
webBrowser1.ObjectForScripting = this;
// Uncomment the following line when you are finished debugging.
//webBrowser1.ScriptErrorsSuppressed = true; webBrowser1.DocumentText =
"<html><head><script>" +
"function test(message) { alert(message); }" +
"</script></head><body><button " +
"onclick=\"window.external.Test('called from script code')\">" +
"call client code from script code</button>" +
"</body></html>";
} public void Test(String message)
{
MessageBox.Show(message, "client code");
} private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Document.InvokeScript("test",
new String[] { "called from client code" });
}}
那我像说的是 如果我给js传入的是datatable类型的呢? 为什么在我这边是错误的呢? 难道还需要做什么操作么?