从C#获取JS中对象文字的属性

时间:2012-07-09 13:25:18

标签: c# javascript

我目前正在尝试获取对象文字属性的值。我的C#程序中有一个浏览器控件,我可以通过以下方式轻松获取全局变量的值:

...
mshtml.IHTMLDocument domDoc = ((mshtml.IHTMLDocument2)_browser.Document.DomDocument)
object script = domDoc.Script;
object nameOfVariable = script.GetType().InvokeMember("nameOfVariable", BindingFlags.GetField | BindingFlags.GetProperty, null, script, null);
...

另一方面,如果JS中的变量实际上是对象文字的属性:

var NameOfLiteral = {
    var nameOfVariable: false // EDIT: no var as jbabey pointed out
};

我可以使用前面的代码来获取包含文字的Com对象,但我完全不知道如何检查它以获取属性。是否有任何好的例子显示如何做我想做的事情?

1 个答案:

答案 0 :(得分:2)

此语法无效javascript,应为:

var NameOfLiteral = {
    nameOfVariable: false // no "var" on object properties
};

然后,您应该能够从C#中访问该属性,如下所示:

object nameOfVariable = script.GetType().InvokeMember("NameOfLiteral.nameOfVariable" ...);
相关问题