Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从临时控制台运行函数?_Javascript_Jquery_Html_Css - Fatal编程技术网

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,没有控制台。另外,我在学校里编写代码,无法打开谷歌浏览器的控制台。