有没有办法使用浏览器的控制台从用户获取数据

问题描述:

我想通过浏览器的控制台捕捉用户的输入。 目前我得到的输入使用JS的提示,像这样:有没有办法使用浏览器的控制台从用户获取数据

var a = prompt("Enter your numbers").split(","); 
console.log(a); 

但我想通过控制台输入的数据。
有没有办法用Javascript或Typescript做到这一点?

编辑

约翰·薇兹给了很好的回答,这通常会工作,也不会与我的问题的工作。

你看,用户会使用控制台输入我将存储到一个数组,并检查重复一串数字......

然后打印这些副本与对象到控制台...

var a; 
window.cliApi = { 
setValue: function (value) { 
a = value; 
} 
} 
var counts = {}; 

a.forEach(function(x){ 
counts[x] = (counts[x] || 0) +1; }); 

console.log(counts); 
+0

哪个控制台? Chrome或命令行? – Amit

+2

由于浏览器控制台是一个REPL工具,我的猜测是“不,不可能”。 –

+0

通过Chrome控制台... – prius

排序您可以创建一个全球公开的API,用户可以从控制台使用,例如:

var a; 

window.cliApi = { 
    setValue: function (value) { 
     a = value; 
    }, 
    getValue: function() { 
     return a; 
    } 
} 

然后,在浏览器控制台,您可以键入:

cliApi.setValue(“世界你好“)

之后您的变量将被填充。

Fiddle here

注意,与的jsfiddle,你将需要设置控制台范围的result框架,而不是top(你做这里面你的开发工具),作为你的代码框架内运行。如果你自己托管你的代码(而不是从一个框架),这不是必需的。

+0

我希望我不要求太多,但是如果用户通过控制台输入数据,那么您将如何将它保存在一个变量中,以便您可以使用它,就像上面提到的提示一样? – prius

+0

@prius当然,这没什么大不了的,你可以简单地分配给一个变量,而不是做一个'alert'。但是请注意,您的变量将不会被调用_until_'cliApi.setValue'被调用。也就是说,你不能直接调用'console.log(a)',而只调用_after_'cliApi.setValue'。 –