javascript - 从 HTML 数据运行 Javascript

标签 javascript c v8

我有一个基于 C 的应用程序。它访问网页并获取html数据、javascript等。html数据可能包含javascript代码,我需要执行javascript代码。

我已将 V8(Chrome 中使用的 JavaScript 引擎)集成到我的 C 代码中。

我想知道执行 JavaScript 代码的最佳逻辑是什么。

我认为的逻辑之一,

  1. 所有下载的 javascript 都将使用 V8 加载/执行。这将使 Javascript 加载到内存中,并且可能不会有任何有用的输出。

  2. 当我获取带有 script 标记的 html 数据(例如某些 javascript 代码)时,我将在 script 标记内执行 javascript 代码。

这是正确的逻辑吗,还是我遗漏了一些东西。或者如果您有更好的建议,请分享。

编辑1
基本上我的问题是,当我扫描 HTML 数据并执行 HTML 数据中存在的 javascript 时,我需要遵循的最佳逻辑是什么。

编辑2
让我们以 JMeter 为例。它获取 HTML 、 Javascript 数据并执行 javascript。我相信在 Java 中也是如此。我需要在 C 中做同样的事情。为此,我在代码中集成了 V8。我现在缺少的是,扫描 HTML 数据并执行 javascript 代码的最佳方法是什么。

最佳答案

你不能真的这样做。 V8 只是 JavaScript 解释器/VM。许多预期的 API 都是浏览器的一部分。例如,DOM、时间、网络等将不起作用。您下载的网页很可能也需要它们。

正确的解决方案是包含 chromium 或其他浏览器后端的完整副本。

关于javascript - 从 HTML 数据运行 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58803445/

相关文章:

javascript - 每次在输入中输入新字符时更新查询

javascript - 根据所选选项更改文本字段

c - ANSI C 编译错误 : expected expression before ‘,’ token

宏可以通过转换为 void 来模拟 void 返回函数吗?

v8 - V8 是否支持 Unicode?

javascript - 如何使用 vanilla Javascript 将一个输入字段的值附加到另一个输入字段的值中?

C 宏,返回错误的参数号

javascript - 为什么添加立即调用的lambda会使我的JavaScript代码快2倍?

javascript - 处理异步 Javascript 函数中的异常

javascript - Adobe Air 使用硬编码的 filePath,但在通过命令行指定 filePath 时失败