Eld*_*rov 3 javascript phantomjs
如何在page.evaluate中写入结果?将结果放入console.log但使用ts引发错误写入文件时,此代码可正常工作.
page.evaluate(function(url) {
function getHTTPResponseString(url, callback) {
try {
var xhr = new XMLHttpRequest();
xhr.onload = function() {
if (this.status == 200) {
var u8 = new Uint8Array(this.response), bs = [];
for (var i = u8.length - 1; i >= 0; --i) {
bs[i] = String.fromCharCode(u8[i]);
}
callback(bs.join(''));
} else {
console.log(this.statusText);
callback('');
}
}
xhr.open('GET', url, true);
xhr.responseType = 'arraybuffer';
xhr.send();
} catch (e) {
console.log(JSON.stringify(e));
}
}
getHTTPResponseString(url, function(result) {
console.log(result);
})
}, url);
Run Code Online (Sandbox Code Playgroud)
我发现通过调用window.callphantom()内部page.evaluate和下一个句柄传递数据可以传递数据page.onCallback:
page.onCallback = function(result) {
var fs = require('fs');
fs.write('file.out', result, 'w');
};
getHTTPResponseString(url, function(result) {
console.log(result);
window.callPhantom(result);
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
709 次 |
| 最近记录: |