如何使用 CsQuery 从 DOM 获取 javascript 变量值?
<script type="text/javascript">
dealerdata = "HelloWorld"
</script>
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 依赖项。