javascript - 如何从输入中执行 JavaScript 代码
问题描述
我正在创建一个网页游戏,其中用户键入代码并将结果显示在屏幕上,用于网页设计类。我已经制作了一些东西来识别HTML和CSS代码,现在我正在尝试使用 JavaScript。我的问题是执行 JavaScript 代码。第一节课是关于变量的。
我创建了一个带有光标的可编辑屏幕,用户在其中键入代码:
正方形是输入中的光标。我将代码的第一部分放在输入上方,下面的分数只是为了显示将要发生的事情。用户插入他的代码(只是一个变量声明)并按下提交按钮来测试是否正确。试图获取代码并执行的是:
$("#submit").on("click", function(){
var full_code = '$(document).ready(function() {'
+ $(".text").val()
+ 'setInterval(function() {ola.style.display = (ola.style.display == \'none\' ? \'\' : \'none\');}, 500);});';
console.log(full_code);
var functionJS = new Function(full_code);
functionJS();
});
在这个例子中,我只想创建一个闪烁的动画。因此,我尝试获取先前的代码并附加到用户代码和其余代码以将所有字符串作为函数执行,但是代码的一部分:ola.style.display
不起作用,因为它说变量ola为空。用户应该键入的内容如下:var ola = document.getElementById("ola");
. 代码有什么问题?这是更好的方法吗?
解决方案
我可能需要查看更多关于这一切如何工作的代码,但我认为ola
null 是因为您选择它的方式。
由于您正在使用 jQuery,您可以执行类似的操作$('#ola')
来选择正确的元素,然后您可以评估样式。
https://api.jquery.com/id-selector/
推荐阅读
- amazon-dynamodb - 如何创建具有多个字段哈希的 DynamoDB 全局二级索引?
- azure-cognitive-search - 中文查询导致出乎意料的高召回率
- r - 如何使用 ggplot 在 R 中创建具有 2 个数值变量的堆积条形图,按 1 个因子变量分组?
- sql - 如何在选择另一个表时更新时间戳列
- vue.js - 添加自定义标头Vue时请求失败
- r - ggplot2中具有许多组的条形宽度
- sql - Hive/Spark 重复密集排名 N 次
- javascript - 有没有办法将 Cesium 实体配置为显示为 ICRF?
- javascript - Javascript:获取与当前时间匹配的数组中日期范围的对象
- ios - 无法将数据从 Swift 映射到 Objective-C 模型