当我测试?_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
身体中的html确实显示但我没有得到任何元标记,并且在标题之前头部有一个巨大的空白区域。
我跟着http://www.meteorpedia.com/read/spiderable/并运行了phantomjs phantomtest.js
❯phantomjs phantomtest.js [17:50:01] 正在加载页面 页面加载状态:成功 尚未准备好,流星未定义
我得到了这个。知道什么是错的吗?谢谢。
答案 0 :(得分:2)
在phantomjs
使用的spiderable
中,不支持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;
};
}
上述实现是从here复制/粘贴的。