我想在PhantomJS中包含多个javascript。 page.includeJS / page.injectJS没有显示包含多个脚本的选项。你能为它提供一个有效的例子吗?
代码:
page.open('index.html', function (openStatus) {
console.log("OPen Status is "+openStatus)
if(openStatus == 'success') {
page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js', function(jStatus) {
console.log("Jquery status: "+jStatus)
(page.includeJs('jquery.textillate.js', function(tStatus) {
console.log("Text status: "+tStatus)
(page.evaluate(function () {
var tag = document.getElementById("main-tag")
tag.innerHTML = "Hello World"
document.getElementById("main-tag").textillate({
maxDisplayTime: 2000,
in: { effect: 'fadeInUp',
delay: 7000 }
});
console.log('Textilate is: '+tag)
}))
}))
})
// setInterval(function() {
// page.render('/dev/stdout', { format: "png" });
// if( frames == 0 ){
// phantom.exit();
// }
// frames--;
// }, 40);
}
});
错误: undefined不是构造函数(评估' document.getElementById(" main-tag")。textillate({
答案 0 :(得分:-1)
undefined is not a constructor
表示您正在调用未定义的方法。最有可能jquery.textillate.js
对目标页面不可用,因为根据代码samle来判断它是一个本地脚本,并且要在page.evaluate中使用它,你应该使用page.injectJs方法。
还要回答你的另一个问题:注入多个脚本有一种更简单的方法。只需将它们全部放在一个捆绑的本地脚本中并注入即可。