我正在尝试渲染我的网页应用页面。
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="includes.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
load_gantt(some, values);
});
</script>
</head>
<body>
<div class="container"></div>
</body>
</html>
正如您所看到的,我包含了jQuery和一个包含所有lib和自定义脚本的连接javascript文件。它被合并到一个文件中,以确保在自定义代码启动时依赖库已经准备就绪。可能不是很漂亮或理想,但这不是问题。
问题是我调用load_gantt()的脚本块。该函数在include.js(在所有库之后)的末尾定义,如下所示:
load_gantt = function(some, values){ /* CODE HERE */ };
load_gantt()对div.container进行实际渲染,非常重要。当我尝试使用PhantomJS渲染此文件时,我收到此错误:
ReferenceError: Can't find variable: load_gantt
我还尝试删除脚本块并使用phantomJS的evaluate-function来运行load_gantt()但它会导致相同的错误。似乎acutal HTML页面的范围与包含的js文件的范围不同。然而,奇怪的是,phantomjs并没有抱怨脚本块的jQuery部分,尽管jquery lib以相同的方式包含...
顺便说一句,代码在每个浏览器中都能正常运行。没有问题或错误......
编辑:修复了一些小的语法错误
答案 0 :(得分:0)
这不是一个真正的答案,而是一个修复程序..我注册了onConsoleMessage
,onError
,onResourceError
和onResourceTimeout
个事件并注意到了错误,表明该功能未正确初始化。
我用过
load_gantt = function(a = 'default_a', b = 'default_b'){ /* ... */};
但PhantomJS与此并不相符......它必须没有默认值。我不知道为什么,但它现在有效。
load_gantt = function(a, b){ /* ... */};