我正在使用Blockly,下面的代码通过字符串变量注入到文档中。字符串(代码)是自动生成的:
var cv; //global variable will execute since used inside onGreenFlagClicked
// will get execute
function helloWorld() {
MinecraftAvatar.waveHelloForNSeconds(7)
}
function onGreenFlagClicked() {
cv = helloWorld();
MinecraftAvatar.sayForNSeconds("I am Mike", 7)
};
Players.walkForwardForNSeconds(7) // no execution
MinecraftAvatar.waveHelloForNSeconds(7) // no execution
在上面的字符串(代码)中,当脚本附加到DOM时,我想执行onGreenFlagClicked()
。我的问题是我只想执行该代码的一部分,例如:变量,函数定义,而不是上面显示的其他内容。
我想禁用
Players.walkForwardForNSeconds(7) // no execution
MinecraftAvatar.waveHelloForNSeconds(7) // no execution
...将代码附加到DOM。
这有可能吗?
如果您不想执行以下操作:
Players.walkForwardForNSeconds(7) // no execution
MinecraftAvatar.waveHelloForNSeconds(7) // no execution
...然后,您需要删除这些行。
不得不用代码来操作字符串不是很好,但是您可以例如删除最后一次出现}
之后的所有代码,如下所示:
code = code.replace(/[^}]*$/, "");
或者,您可以删除所有以大写字母开头的行(不带空格):
code = code.replace(/^[A-Z].*/gm, "");
要添加呼叫,您只需将其附加到代码:
code = code + "\nonGreenFlagClicked();";