2

我在https://blockly-games.appspot.com上玩得很开心,并且已经到了 可以编写完整的 javascript的最后一个级别new Date().getTime();(非常方便)。

尽管在 Chrome (ctrl-shift-j) 中打开了控制台,但我似乎无法console.log("test");从游戏中向它写入任何内容。当我这样做时,我看到:

// Starting battle with 2 players.                         compressed.js:420
// [Player] throws an error: Unknown identifier: console   compressed.js:423
// undefined                                               compressed.js:423
// [Player] dies.                                          compressed.js:416

然而,如果我console.log("hmm");在控制台中输入,我会正确看到:

// console.log("hmm"); 
// hmm                                                     VM1038:2 
// undefined

如果我尝试使用相同的故事alert("test")

我想调试,但我发现的唯一输出形式是操纵鸭子并抛出未知标识符。有没有办法摆脱这个沙盒?

更新:如何在 Google Chrome JavaScript 控制台中打印调试消息?有一些恢复控制台的想法,但在这种情况下它们似乎不起作用。

更新:只是要清楚,这是 chrome 在遇到此错误时的样子。

在此处输入图像描述

4

1 回答 1

0

找到了一个笨拙的解决方法:

  throw "\nYour message here.";

显示:

//  [Player] throws an error: Unknown identifier:         compressed.js:423 
// Your message here.                                     
//  undefined                                             compressed.js:423 
//  [Player] dies.                                        compressed.js:416

杀死自己只是为了记录一些东西可能看起来很苛刻,但现在你可以写一些时髦的断言。

function assertTrue(test, message) {
  if (!test) {
    throw message;
  }
}

它有效,但上帝知道我希望有更好的方法。

于 2015-01-31T21:56:28.713 回答