1
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". 为什么?

4

1 回答 1

2

据我所知,您无法访问内部变量,code因为根据此处的文档(阅读第一个注释) ,它的上下文对浏览器的访问受到限制。

这正是文档所说的。

注意:运行器上下文对浏览器功能的访问受到限制(例如,没有 DOM 访问),因为在大多数情况下,Bonsai 代码是在工作人员中执行的。因此,您只能使用提供的 Bonsai API 和为工作人员提供的普通 JS 函数(有关详细信息,请参阅 MDN 上的工作人员可用的函数)。如果您想将初始数据传递给运行器上下文,您可以阅读本页底部的相关信息,或者如果您想通过 Bonsai 动态操作 DOM,您应该查看通信概述

如果有办法从网络工作者内部访问窗口范围,那么它是可能的。(不知道有没有可能)

希望这可以帮助。

于 2015-04-23T04:24:18.573 回答