我聲明瞭一個全局變量,var linkArray=[]
,但它不在phantomJS
函數中拾取。錯誤消息是:phantom stdout: ReferenceError: Can't find variable: linkArray
。我怎樣才能找到這個?我試過用window.linkArray
來聲明它,但是由於這是一個無頭應用程序,我得到了一個不同的錯誤,ReferenceError: window is not defined
。未找到全局定義的變量
因此,我需要一種方法使var linkArray=[]
全球。
var phantom = require('phantom');
var linkArray=[];
phantom.create(function (ph) {
ph.createPage(function (page) {
var main_file="file:///C:/whatever/index.html";
page.open(main_file, function (status) {
console.log("opened " + main_file +"\n",status+"\n");
page.evaluate(function() {
for (var i=0; i < document.getElementsByTagName('a').length; i++) {
linkArray.push(document.getElementsByTagName('a')[i].href)
}
return linkArray;
}
, function (result) {
console.log(result)
ph.exit();
});
});
});
}, {
dnodeOpts: {
weak: false
}
});
我使用的節點,所以我用'npm'安裝'phantom'然後聲明'var phantom = require('phantom');'。 – maudulus 2014-10-09 14:37:02
還有https://github.com/alexscheelmeyer/node-phantom等等。我看到他們都導致相同的答案。 – 2014-10-09 14:49:24