Phantomjs Function.prototype.bind[英] Phantomjs Function.prototype.bind

问题描述

是的,我知道. Phantomjs 不支持函数绑定.但也许我可以使用其他东西,或者说 page.open 不使用 bind?好像还可以,但是有些网站返回错误

TypeError: 'undefined' is not a function (evaluating 'b.bind(a)')

然后我写了一个简单的脚本,它只是打开一个页面:

var address = phantom.args[0];
if(!address) phantom.exit(1);

page = require("webpage").create();

page.open(address, function(status){
setInterval(
   function () {

   console.log(
       page.evaluate(function() {
            return document.body.innerHTML.length;
       })
   )}, 200)
})

但错误仍然存​​在.错误不是主要问题,但问题是获取页面内容,因为错误后页面内容没有加载...

所以,我需要帮助.

附:问题网站是 http://vkrushelnytskiy.wix.com/aaaa

推荐答案

有一个 npm 包为 phantomJS 缺少的 .bind 方法加载一个 polyfill.为方便起见,请在此处复制安装说明,但请点击链接获取任何更新.

安装

npm install --save-dev phantomjs-polyfill

用法

require('phantomjs-polyfill')

与 Karma 一起使用将 polyfill 直接包含在 karma.conf 的文件列表

...
files: [
  './node_modules/phantomjs-polyfill/bind-polyfill.js',
  ...
]
...

本文地址:https://www.itbaoku.cn/post/1740045.html