在 C# webBrowser 控件中调用 Javascript 函数
Posted
技术标签:
【中文标题】在 C# webBrowser 控件中调用 Javascript 函数【英文标题】:Calling a Javascript function in the C# webBrowser control 【发布时间】:2010-11-29 01:33:08 【问题描述】:我在 C# 中使用 webBrowser 控件加载网页,需要调用一个返回字符串值的 javascript 函数。我得到了使用 InvokeScript 方法的解决方案,我尝试了很多,但一切都失败了。
【问题讨论】:
【参考方案1】:你能具体说明失败的原因吗?
我下面的示例由一个带有 WebBrowser 和一个按钮的表单组成。
最后称为 y 的对象有句子“我做到了!”。所以对我来说它有效。
public partial class Form1 : Form
public Form1()
InitializeComponent();
webBrowser1.DocumentText = @"<html><head>
<script type='text/javascript'>
function doIt()
alert('hello again');
return 'i did it!';
</script>
</head><body>hello!</body></html>";
private void button1_Click(object sender, EventArgs e)
object y = webBrowser1.Document.InvokeScript("doIt");
【讨论】:
【参考方案2】:您可以向 js 函数发送参数:
// don't forget this:
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[ComVisible(true)]
public partial class Form1 : Form
public Form1()
InitializeComponent();
webBrowser1.DocumentText = @"<html><head>
<script type='text/javascript'>
function doIt(myArg, arg2, arg3)
alert('hello again ' + myArg);
return 'yes '+arg2+' - you did it! thanks to ' +myArg+ ' & ' +arg3;
</script>
</head><body>hello!</body></html>";
private void button1_Click(object sender, EventArgs e)
// get the retrieved object from js into object y
object y = webBrowser1.Document.InvokeScript("doIt", new string[] "Snir", "Raki", "Gidon");
【讨论】:
以上是关于在 C# webBrowser 控件中调用 Javascript 函数的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# 中由 .NET WebBrowser 控件托管的页面中调用 JavaScript 方法并将参数传递给 JavaScript 方法? [复制]
C# WPF WebBrowser控件调用Refresh()函数出现异常,导致程序“未响应”并无法继续运行