我正在尝试将一些脚本加载到phantomjs访问的页面中。我正在使用2.1.1 btw。
我有点在这里敲我的头,因为我尝试了各种各样的东西,它们似乎都以同样的方式失败,这让我觉得我可能缺少配置设置或其他东西。
任何我正在尝试的人:
//I dont actually care about using jquery, just trying loading from different servers
page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js');
和
page.includeJs('https://aSiteIControl.com/jquery.min.js');
然后我有一个像这样的onResourceError处理程序:
page.onResourceError = function(resourceError) {
console.error(resourceError.url + ': ' + resourceError.errorString);
console.error(JSON.stringify(resourceError))
};
无论我尝试过什么都输出这个:
https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js: Operation canceled
{"errorCode":5,"errorString":"Operation canceled","id":1,"status":null,"statusText":null,"url":"https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"}
无论我使用什么协议或脚本使用什么服务器,这似乎都会发生。此外,这两个示例都可以在浏览器中访问。任何人都知道我可能做错了什么?
要清除已接受的答案,因为没有代码:
看看这个问题:
答案 0 :(得分:3)
我打赌你可以直接包含本地脚本。请尝试:
(page.evaluate(function() {
var script = document.createElement('script');
script.src = 'http://urlToScript.com';
}))
答案 1 :(得分:2)
这可能是由于超时或在加载js时调用幻像对象的exit()函数,或者如果您尝试打开另一个页面。你可以添加所有代码吗?
基于documentation,您可以包含外部JS:
包含来自指定网址的外部脚本(通常是远程位置)