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。
当我测试 ?_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。