Javascript 如何在谷歌中分块输出消息?
我玩得很开心,已经到了可以编写完整javascript的地方(Javascript 如何在谷歌中分块输出消息?,javascript,blockly,Javascript,Blockly,我玩得很开心,已经到了可以编写完整javascript的地方(newdate().getTime();非常方便) 尽管控制台是用Chrome(ctrl-shift-j)打开的,但我似乎无法用console.log(“test”)在游戏中。当我看到: // Starting battle with 2 players. compressed.js:420 // [Player] throws an error: Unknown identifier:
newdate().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
如果我尝试使用警报(“测试”)
,情况也是如此
我想调试,但我发现的唯一输出形式是操纵duck和抛出未知标识符。有办法走出这个沙箱吗
更新:有一些恢复控制台的想法,但在这种情况下似乎不起作用
更新:需要澄清的是,这就是chrome在遇到此错误时的样子
找到了一个棘手的解决办法:
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;
}
}
这是可行的,但上帝知道我希望有更好的办法。这很奇怪。所以您肯定代码得到了执行,是的,代码块以某种方式抑制了console.log和alert?我想知道,如果您在调试器中单步执行alert,会发生什么情况。@tit。我可以很好地运行其他代码,但由于某些原因,blockly未定义控制台,因此我没有引用它。我很想一步一步地讲,但是当player.js(我的代码)甚至没有在Chrome的调试器中显示为文件时,我该怎么做呢?这很奇怪。为什么它不显示在调试器中?HTML是否显示在调试器中?为什么不在html中设置断点,从嵌入(不包括)的javascript调用代码,然后从那里开始呢?@titаааtit。只要断点位于一个块源(common/boot.js等)中,我就可以设置和命中断点。问题是,在那之后,我找到了进入代码(player.js)的方法。你能找到一个设置断点的好地方吗?我怀疑我能找到的最接近它的方法就是跟踪运行我代码的解释器。你还发现这个问题吗?我可以在Javascript代码中从我的Google Chrome控制台引用console.log
或alert
。@Error404是的,刚刚尝试过:“[Player]抛出错误:未知标识符:控制台”@Error404“[Player]抛出错误:未知标识符:警报”你是想用自定义的例子还是谷歌的例子?你在这个问题上提供的第二个链接被破坏了,所以我看不出你想在哪里这样做。我在自定义示例中使用了console.log
,效果非常好。@Error404我在页面提供的javascript字段中执行此操作,您可以在其中编写所有代码。以加农炮(0,70)开始的字段代码>在其中。我已经修好了链接。你说它适合你,但我不能让它在chrome、firefox或IE上工作。你能告诉我一些你如何让它工作的细节吗?