工人未定义

时间:2013-01-07 15:29:24

标签: bonsaijs

bonsai docs“Communication”部分(http://docs.bonsaijs.org/overview/Communication.html)有以下示例,除IE9外,其他地方都可以运行:

<script src="http://cdnjs.cloudflare.com/ajax/libs/bonsai/0.4/bonsai.min.js"></script>
<div id="movie"></div>
<script>
  var movie = bonsai.run(
    document.getElementById('movie'),
    {
      code: function() {
        // receive data from the other side
        var text = new Text().addTo(stage);
        stage.on('message:externalData', function(data) {
          text.attr('text', data.nodeData);
        });
        stage.on('message', function(data) {
          if (data.bonsai === 'tree') {
            text.attr('textFillColor', 'red');
          }
        });
        stage.sendMessage('ready', {});
      }
    }
  );
  // emitted before code gets executed
  movie.on('load', function() {
    // receive event from the runner context
    movie.on('message:ready', function() {
      // send a categorized message to the runner context
      movie.sendMessage('externalData', {
        nodeData: document.getElementById('movie').innerHTML
      });
      // send just a message to the runner context
      movie.sendMessage({
        bonsai: 'tree'
      });
    });
  });
</script>

第一个问题是:为什么以下代码修改:

<script src="http://cdnjs.cloudflare.com/ajax/libs/bonsai/0.4/bonsai.min.js"></script>
<div id="movie"></div>
<script>
var movie = bonsai.run(document.getElementById('movie'), 'movie.js');
  // emitted before code gets executed
  movie.on('load', function() {
    // receive event from the runner context
    movie.on('message:ready', function() {
      // send a categorized message to the runner context
      movie.sendMessage('externalData', {
        nodeData: document.getElementById('movie').innerHTML
      });
      // send just a message to the runner context
      movie.sendMessage({
        bonsai: 'tree'
      });
    });
  });
</script>

其中movie.js是:

document.getElementById('movie'),
{
  code: function() {
    // receive data from the other side
    var text = new Text().addTo(stage);
    stage.on('message:externalData', function(data) {
      text.attr('text', data.nodeData);
    });
    stage.on('message', function(data) {
      if (data.bonsai === 'tree') {
        text.attr('textFillColor', 'red');
      }
    });
    stage.sendMessage('ready', {});
  }
}

抛出“WORKER undefined”

为什么原始代码在IE9中不起作用?

0 个答案:

没有答案