Javascript JSDOM未在节点中加载脚本文件
我正在尝试在jsdom中加载html页面,最终生成图形。我无法克服仅仅加载html页面并让javascript执行的第一个障碍 下面是我试图加载的html页面,它不带任何参数,只呈现一个简单的图形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
<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站点上的示例没有显示任何内容。