在WebBrowser中通过JS调用C#方法(转)
2013-01-13 21:56
686 查看
来源:http://www.lwolf.cn/blog/article/code/WebBrowser-js-call-csharp.htm
在Winform程序中,通过WebBrowser控件可以让Javascript 和 C#进行交互。要让JS调用C#方法,需要在类上设置ComVisible,然后还要设置WebBrowser的ObjectForScripting属性。
JS中调用只需使用:window.external.方法名
具体代码如下:
复制内容到剪贴板
程序代码
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace Lwolf
{
public partial class Form1 : Form
{
//此类必须对 COM 可见,才能从Javascript中调用。
[ComVisible(true)]
public class ScriptManager
{
public ScriptManager()
{
}
//此方法可在JS中调用
public void CallFromJS(string message)
{
MessageBox.Show(message);
}
}
public Form1()
{
InitializeComponent();
webBrowser1.ObjectForScripting = new ScriptManager();
webBrowser1.DocumentText = @"<html>
<head>
<title>Test</title>
</head>
<body>
<input type=""button"" value=""点击"" onclick=""window.external.CallFromJS('TEST');"" />
</body>
</html>";
}
}
}
在Winform程序中,通过WebBrowser控件可以让Javascript 和 C#进行交互。要让JS调用C#方法,需要在类上设置ComVisible,然后还要设置WebBrowser的ObjectForScripting属性。
JS中调用只需使用:window.external.方法名
具体代码如下:
复制内容到剪贴板
程序代码
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace Lwolf
{
public partial class Form1 : Form
{
//此类必须对 COM 可见,才能从Javascript中调用。
[ComVisible(true)]
public class ScriptManager
{
public ScriptManager()
{
}
//此方法可在JS中调用
public void CallFromJS(string message)
{
MessageBox.Show(message);
}
}
public Form1()
{
InitializeComponent();
webBrowser1.ObjectForScripting = new ScriptManager();
webBrowser1.DocumentText = @"<html>
<head>
<title>Test</title>
</head>
<body>
<input type=""button"" value=""点击"" onclick=""window.external.CallFromJS('TEST');"" />
</body>
</html>";
}
}
}
相关文章推荐
- C# winForm webBrowser页面中js调用winForm类方法(转)
- WebBrowser控件中JS调用C#方法
- WinForm中嵌入WebBrowser,并且支持C#和JS方法的相互调用
- C# winForm webBrowser页面中js调用winForm类方法
- 在WebBrowser控件使用js调用C#方法
- webBrowser执行js的方法,并返回值,c#后台取值的实现
- 通过java调用js方法的demo
- C# WebBrowser执行自定义JS方法
- 深入理解 c# 第三章 通过反射来调用和获取泛型方法
- 如何在前台JS调用后台C#方法
- [Winform]CefSharp ——js调用c#方法
- 通过js调用android原生方法
- Js调用exe程序方法(通过URL Protocol实现网页调用本地应用程序)
- js与C#之间相互调用的一些方法
- 不用AJAX实现前台JS调用后台C#方法(小技巧)
- 如何通过C#.NET中的反射机制来创建C#.NET泛型类的实例,并调用其方法??
- c#后台调用前台与js方法互调
- 通过WebBrowser中的脚本调用Delphi自定义的方法(How to call Delphi code from scripts running in a TWebBrowser)
- JavaScriptCallCSharp js调用C#属性与方法
- .net下不用AJAX实现前台JS调用后台C#方法