gpt4 book ai didi

javascript - 仅执行作为字符串注入(inject)的部分代码

转载 作者:行者123 更新时间:2023-11-30 13:45:50 28 4
gpt4 key购买 nike

我正在使用 Blockly,下面的代码通过字符串变量注入(inject)到文档中。字符串(代码)自动生成:

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();";

关于javascript - 仅执行作为字符串注入(inject)的部分代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59350912/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com