1

我目前正在尝试获取对象文字的属性值。我的 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 对象,但我完全不知道如何检查它以获取属性。有没有什么好的例子可以展示如何做我想做的事情?

4

1 回答 1

2

此语法不是有效的 javascript,它应该是:

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

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

object nameOfVariable = script.GetType().InvokeMember("NameOfLiteral.nameOfVariable" ...);
于 2012-07-09T13:35:10.633 回答