为Windows窗体使用Awesomium .net。
我的代码 - behinde调用java脚本函数传递参数(JSValue)。
JSValue[] args = new JSValue[args2.Length];
for (int i = 0; i < args2.Length; i++)
{
args[i] = args2[i].ToString();
}
JSObject js_obj = webControl1.ExecuteJavascriptWithResult("window");
//args has all my 35 elements.
js_obj.Invoke("addTheseElements", args);
REFERENCE http://docs.awesomium.net/html/M_Awesomium_Core_JSObject_Invoke.htm http://answers.awesomium.com/questions/784/calling-a-javascript-method-with-parameters.html
我的HTML页面
<script>
function addTheseElements(args) {
alert(args);
//returns element1
alert(args[0]);
//returns e
alert (args.length)
//returns 8 (element1)
}
</script>
问题是我无法选择数组中的第二个元素。我如何访问它?我做错了什么?
答案 0 :(得分:0)
好吧我不确定这是否是正确的方法,但事实证明我需要传递的第二个参数是JSValue对象而不是JSValue []。
所以我的工作答案是
JSValue[] args = new JSValue[args2.Length];
for (int i = 0; i < args2.Length; i++)
{
args[i] = args2[i].ToString();
}
JSValue args3 = args;
JSObject js_obj = webControl1.ExecuteJavascriptWithResult("window");
js_obj.Invoke("addTheseElements", args3);
但是文档中给出的语法是
public JSValue Invoke(
string methodName,
params JSValue[] args
)
REF http://docs.awesomium.net/html/M_Awesomium_Core_JSObject_Invoke.htm
如果有人发现这里发生了什么,请随时解释。
干杯。
答案 1 :(得分:0)
尝试更改此内容:
args[i] = args2[i].ToString();
要:
args[i].push_back(args2[i].ToString());
在通过之前。
这样就会变成:
JSValue[] args = new JSValue[args2.Length];
for (int i = 0; i < args2.Length; i++)
{
args[i].push_back(args2[i].ToString());
}
JSObject js_obj = webControl1.ExecuteJavascriptWithResult("window");
js_obj.Invoke("addTheseElements", args);