我目前正在尝试获取对象文字属性的值。我的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对象,但我完全不知道如何检查它以获取属性。是否有任何好的例子显示如何做我想做的事情?
答案 0 :(得分:2)
此语法无效javascript,应为:
var NameOfLiteral = {
nameOfVariable: false // no "var" on object properties
};
然后,您应该能够从C#中访问该属性,如下所示:
object nameOfVariable = script.GetType().InvokeMember("NameOfLiteral.nameOfVariable" ...);