如何调用脚本标签中定义的 javascript 函数?

cam*_*kid -2 javascript node.js jsdom

例子:

<script type="text/javascript">
    function test() {
        console.log("Hello world");
    }
</script>
Run Code Online (Sandbox Code Playgroud)

我该怎么称呼test()

编辑:我没有正确解释这一点。

我正在使用 node.js 的请求模块来加载包含 javascript 函数的外部 html 文件:

request.get(options, function (error, response, body) {
    if (error && response.statusCode !== 200) {
    }
    else {
        jsdom.env({
            html: body,
            scripts: ["../jquery-1.6.4.min.js"]
        }, function (err, window) {
            var $ = window.jQuery;
Run Code Online (Sandbox Code Playgroud)

我只是在寻找在“body”中调用函数的语法。

tmp*_*var 5

所以这里的问题是默认情况下,jsdom.env不执行处理标记时发现的 javascript。

您需要开启这些功能:

jsdom.env({
  // ...
  features : {
    FetchExternalResources : ['script'],
    ProcessExternalResources : ['script']
  }
});
Run Code Online (Sandbox Code Playgroud)

FetchExternalResources 控制 jsdom 是否应该通过网络/磁盘来收集资源的字节

ProcessExternalResources 控制是否执行或获取的脚本

请注意,选择这些名称是为了包含将来会添加的其他资源类型(例如:图像、CSS 等)。这里的想法是提供合理的默认值,但有许多影响 jsdom 行为的可转动旋钮。