var star = document.getElementById("star");
var color = "#ef6360";
bonsai.run(star, {
code: function() {
new Star(30, 30, 20, 5, 0.7).attr({
fillColor: color
}).addTo(stage);
}
});
它不起作用,但如果我删除变量并直接使用字符串,它就会起作用,例如fillColor:"#ef6360"
。为什么呢?
答案 0 :(得分:2)
据我所知,您无法访问code
内的变量,因为根据文档 here (read the first note) ,其上下文对浏览器的访问权限有限。
这就是文档所说的内容。
注意 :运行者上下文对浏览器功能的访问权限有限(例如没有DOM访问权限),因为在大多数情况下,Bonsai代码是在工作人员中执行的。因此,您只能使用提供的Bonsai API和为工作人员提供的常规JS函数( see Functions available for workers on MDN for details )。如果您想将初始数据传递给运行者上下文,您可以在本页底部阅读该内容,或者如果您想通过Bonsai动态操作DOM,您应该查看 Communication overview 强>
如果有办法从Web工作者内部访问窗口范围,则可以。 (我不知道是否有可能)
希望这有帮助。