![](/img/trans.png)
[英]How can I pass a JSON array to a javascript function in the C# WebBrowser Control?
[英]How can I pass array from wpf control to javascript function in webbrowser control?
我可以发送一个参数,但不能发送数组。
C#代码:
string[] mes = {"Bascketball Stadium", "New Address", "Ilya"};
this.MyWebBrowser.InvokeScript("DaveWriter", mes);
JavaScript代码:
function DaveWriter(mes){
var arr = jQuery.makeArray(mes);
document.getElementById('company').innerHTML = arr[0];
document.getElementById('address').innerHTML = arr[1];
}
我只收到数组的第一个元素。
我应该更改什么才能接收所有元素?
非常棘手,因为InvokeScript将参数作为数组。 因此,例如,您实际上在其中传递了3个参数,而不是参数数组, mes
每个元素都是DaveWriter
一个参数。 意思是,如果您将其更改为:
function DaveWriter(arg1, arg2, arg3) {
// Your code
}
在那里。 从我所看到的情况来看,没有一种干净的方法可以执行您想要的操作。 一些建议使用JSON,然后在JavaScript中评估JSON。 我不喜欢这个主意,因为您必须使用eval()
,这让我感到不对。
这是我的建议。 如果按原样传递它,然后通过arguments
变量访问它,该怎么办? 有关更多信息,请参见Arguments对象 。 基本上:
function DaveWriter(mes){
document.getElementById('company').innerHTML = arguments[0];
document.getElementById('address').innerHTML = arguments[1];
}
这不是理想的方法,但是它会让您做自己想做的事情。 我不相信还有很多其他选择。 也许有人知道更干净的方法,但这应该对您有用。 由于没有手持WebBrowser的WPF应用程序,因此我没有机会进行全面测试,但是我认为这可以满足您的需求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.