Meteor Spiderable,错误

Meteor Spiderable, errors

当我测试 ?_escaped_fragment_= 时,我得到

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

http://localhost:3000/packages/material-design.js?e252ae03c7066a6ce33a348a22662a73cee8811e:75
http://localhost:3000/packages/material-design.js?e252ae03c7066a6ce33a348a22662a73cee8811e:315
http://localhost:3000/packages/material-design.js?e252ae03c7066a6ce33a348a22662a73cee8811e:318
http://localhost:3000/packages/material-design.js?e252ae03c7066a6ce33a348a22662a73cee8811e:778

body 中的 html 确实出现了,但我没有得到任何元标记,标题前的头部有一个巨大的空白 space。

我关注了 http://www.meteorpedia.com/read/spiderable/ 和 运行 phantomjs phantomtest.js

❯幻影 phantomtest.js [17:50:01] 加载页面... 页面加载状态:成功 还没准备好,Meteor undefined

我明白了。

知道出了什么问题吗?谢谢。

在被spiderable使用的phantomjs中,不支持bind方法。如果您是 material-design 的所有者,我建议您将 bind 替换为 _.bind。否则,您可以将 a polyfill 添加到您的项目以确保正确定义 Function.prototype.bind

编辑

为确保您的浏览器支持 bind 将此代码放在您的代码库中的某处:

if (!Function.prototype.bind) {
  Function.prototype.bind = function(oThis) {
    if (typeof this !== 'function') {
      // closest thing possible to the ECMAScript 5
      // internal IsCallable function
      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');
    }

    var aArgs   = Array.prototype.slice.call(arguments, 1),
        fToBind = this,
        fNOP    = function() {},
        fBound  = function() {
          return fToBind.apply(this instanceof fNOP && oThis
                 ? this
                 : oThis,
                 aArgs.concat(Array.prototype.slice.call(arguments)));
        };

    fNOP.prototype = this.prototype;
    fBound.prototype = new fNOP();

    return fBound;
  };
}

以上实现是copy/pasted来自here