Javascript JSDOM未在节点中加载脚本文件

Javascript JSDOM未在节点中加载脚本文件,javascript,jquery,node.js,jsdom,Javascript,Jquery,Node.js,Jsdom,我正在尝试在jsdom中加载html页面,最终生成图形。我无法克服仅仅加载html页面并让javascript执行的第一个障碍 下面是我试图加载的html页面,它不带任何参数,只呈现一个简单的图形 <html> <head> <script src="http://code.jquery.com/jquery.min.js"/> <script src="http://static.fusioncharts.com/code/latest

我正在尝试在jsdom中加载html页面,最终生成图形。我无法克服仅仅加载html页面并让javascript执行的第一个障碍

下面是我试图加载的html页面,它不带任何参数,只呈现一个简单的图形

<html>
<head>
    <script src="http://code.jquery.com/jquery.min.js"/>
    <script src="http://static.fusioncharts.com/code/latest/fusioncharts.js"/>
    <script src="http://static.fusioncharts.com/code/latest/fusioncharts.charts.js"/>
    <script src="http://static.fusioncharts.com/code/latest/themes/fusioncharts.theme.fint.js"/>
    <script>
        var testVar = true;
        function test(){
            testVar = false;
        };
    </script>
    <script>
        $(document).ready(function(){
            FusionCharts.ready(function () {
            var revenueChart = new FusionCharts({
                type: 'column2d',
                renderAt: 'container',
                width: '400',
                height: '200',
                dataFormat: 'json',
                dataSource: {
                    "chart": {
                        "caption": "Split of Revenue by Product Categories",
                        "subCaption": "2014",
                        "numberPrefix": "$",
                        "theme": "fint",
                        "captionFontSize": "13",
                        "subcaptionFontSize": "12",
                        "subcaptionFontBold": "0",
                        "showValues": "0"
                    },
                    "data": [{
                        "label": "Food",
                            "value": "28504"
                    }, {
                        "label": "Apparels",
                            "value": "14633"
                    }, {
                        "label": "Electronics",
                            "value": "10507"
                    }, {
                        "label": "Household",
                            "value": "4910"
                    }]
                }
            }).render();
            });

            var svg = $('#container').html();
        });
    </script>
<head>
<body>
    <div id="container">Charts will render here</div>
</body>
奇怪的是,如果我没有在config对象中包含
脚本
,它将不会加载它们,并使它们在
done
回调中可用,即使它在html页面上

另外,
testVar
从未在回调中定义过,即使它出现在页面中,这与
window.test()
的情况相同,即使它在html页面中似乎在回调中不可用

我尝试了创建jsdom对象的所有不同版本,但没有一个版本允许页面加载脚本,而不是将脚本传递到config对象,也没有一个版本允许我访问脚本标记中定义的变量和函数


是否缺少某些内容?

更改您的
脚本
元素,使其成为正确的HTML:

<script src="http://code.jquery.com/jquery.min.js"></script>


如果您这样做,一切都将正常加载,您不必在配置中使用
脚本。

更改
脚本
元素,使其成为正确的HTML:

<script src="http://code.jquery.com/jquery.min.js"></script>


如果您这样做,一切都将正常加载,您不必在配置中使用
脚本。

Louis,就是这样。现在,我还有两个问题。首先,函数$(document).ready从未被调用,我如何确保甚至测试它是否被调用。其次,我如何将事件传递回节点中的代码,因为我只是尝试将事件附加到窗口并从html中传播,但它似乎不起作用。最后,如何从窗口内部登录并在我的节点后端捕获该日志,当使用jsdom.env方法时,jsdom站点上的示例没有显示任何内容。现在,我还有两个问题。首先,函数$(document).ready从未被调用,我如何确保甚至测试它是否被调用。其次,我如何将事件传递回节点中的代码,因为我只是尝试将事件附加到窗口并从html中传播,但它似乎不起作用。最后,如何从窗口内部登录并在节点后端捕获该日志,当使用jsdom.env方法时,jsdom站点上的示例没有显示任何内容。