4

如何使用 CsQuery 从 DOM 获取 javascript 变量值?

<script type="text/javascript">
    dealerdata = "HelloWorld"
</script>
4

1 回答 1

2

CsQuery 仅解析 HTML - 而不是 javascript。因此,您可以像这样轻松获取script块的内容:

CQ dom = @"<script type='text/javascript'>
               dealerdata = 'HelloWorld'
           </script>";

var script = dom["script"].Text();
// script == "dealerdata = 'HelloWorld'

...但是你只能靠自己了,它是 JavaScript。在您的示例中,这将是微不足道的:

string[] parts = script.Split('=');
string value = parts[1].Trim();

.. 但这只是因为您确切地知道输入的样子。对于您不确定目标可能处于何种上下文的典型用例,这对您没有多大帮助。

如果你需要在 .NET 中解析 Javascript,我推荐Jurassic项目,一个很棒的 JavaScript 编译器。如果速度至关重要,请查看javascript.net。这包含了 Google 的 V8 引擎,将比侏罗纪快很多,但将具有非 .NET 依赖项。

于 2013-06-06T12:47:19.993 回答