Javascript 如何从临时控制台运行函数?
我正在尝试创建一个控制台。假设我使用了一个函数Javascript 如何从临时控制台运行函数?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在尝试创建一个控制台。假设我使用了一个函数foo(),并将其输入“控制台”。控制台应该运行该功能。我尝试了以下几点: var$console=$('.console'); 变量控制台={ 日志:函数(txt){ $console.append(txt+“”); }, 清除:函数(){ $console.text(“”); } } 函数foo(){ log('foo-ran'); } var bKeys=[]; $('body').keydown(函数(事件){ if(event.which
foo()
,并将其输入“控制台”。控制台应该运行该功能。我尝试了以下几点:
var$console=$('.console');
变量控制台={
日志:函数(txt){
$console.append(txt+“
”);
},
清除:函数(){
$console.text(“”);
}
}
函数foo(){
log('foo-ran');
}
var bKeys=[];
$('body').keydown(函数(事件){
if(event.which==13){
//从输入运行提供的函数
($('.run').text())();
}
});代码>
.console{
位置:绝对位置;
右:0px;
顶部:0px;
背景色:#fff;
宽度:300px;
身高:100%;
盒影:0px 0px 5px#444;
溢出y:自动;
}
.跑{
位置:固定;
底部:0px;
宽度:295px;
}
控制台:
如果您试图创建一个新的调试器面板,就像每个浏览器都内置一样,那么您需要很多东西。如果您想允许运行任何JS代码,可以使用eval(userInputText)
。如果不验证userInputText
并且不处理错误,这可能会很危险
但是,如果您只想允许从固定列表中调用预定义命令,那么下面是一个开始:
- 向输入添加事件处理程序,以检测其内容何时更改
- 读出内容,这将是键,命令的名称
- 创建允许/可能的命令的对象/数组/字典。键/索引应该是命令的名称,值是函数
- 当输入更改时,验证它,然后运行类似于
commandStorage[userInputText]()
的操作
- 您可以将其扩展为传递参数、添加复杂调用等
好的,问题是什么question@nbokmans我正在尝试从控制台运行一个函数,我正在通过
,但我不知道如何做到这一点。那么,我该怎么做呢?你可以(读:)使用eval()
-但是,你为什么要这样做呢?@Lewis我用的是codepen,没有控制台。另外,我在学校里编写代码,无法打开谷歌浏览器的控制台。