我已经安装了来自:https://github.com/TimHeckel/meteor-webshot
的webshot包和meteor webshot智能包在目录pacages / webshot / lib / webshot.js中有WEBSHOT对象的定义。 在默认的流星应用程序中,我想使用此对象来获取快照,如上面链接的第二步所示:
Template.hello.events({
'click input' : function () {
var _image = "myscreenshot.png";
var _res = WEBSHOT.snap("http://google.com", "public/exports~/" + _image, {
screenSize: {
width: 300
, height: 300
}
});
}
});
当我点击按钮时,我有一个例外: 未捕获的ReferenceError:未定义WEBSHOT。
命令:
流星列表
显示webshot包,我需要在哪里包含此包以使其正常工作?
答案 0 :(得分:1)
WEBSHOT
对象仅在服务器端可用。请参阅this line in package.js。
要使用它,您需要在服务器上使用Meteor.methods
创建方法,在其中使用WEBSHOT
,然后从事件处理程序中调用此方法。
答案 1 :(得分:1)
Hubert OG是对的,这个软件包只是服务器端。
然而,它在5个月内没有更新,所以看起来它不是最新的Meteor的最新“链接器”,如果我记得很清楚,这个功能出现在0.6.5中。
您需要在本地packages目录中git克隆该包。 (你可能需要“流星删除”以前的包和“流星添加”新的包)。 然后修改package.js,使它看起来像这样:
Package.on_use(function (api) {
api.add_files("lib/webshot.js", "server");
api.export("WEBSHOT","server");
});
从Meteor 0.6.5开始,您需要明确指定将包中的哪些符号导出到全局命名空间,因为包代码是在闭包内执行的。
答案 2 :(得分:1)
我遇到了同样的问题所以我使用最新版本的node-webshot https://atmospherejs.com/bryanmorgan/webshot添加了一个新的Meteor包装器。
你应该能够使用它来实现它:
meteor add bryanmorgan:webshot
然后是与node-webshot相同的API:
webshot("http://google.com", "/tmp/google.png", function (err) {
// screenshot saved to /tmp/google.png
});