如何从Chrome的Javascript控制台获取输入?
有没有办法以编程方式从谷歌浏览器的Javascript控制台获取输入,类似于Firefox中的readline()
?
这是一种获取输入的间接方法:
在JavaScript中声明一个函数:
function your_command_here() { //code }
由于Chrome的控制台基本上提供了与页面内容进行通信的方法,如JavaScript变量,函数等,因此将函数声明为可接收命令可以是一种选择。
在控制台中,为了提供输入,用户应键入:
your_command_here()
另一个解决方法是:
声明一个函数:
function command(var cmnd) { switch(cmnd) { case "command1": //code break; } }
因此用户可以(更方便地)键入:
命令(“用户命令在这里”)
抱歉,无法在Chrome JS控制台上运行,只需处理来自repl.it的repl
repl.it的示例:
console.log("Enter your name:"); console.read(function(name) { console.log('Your name is ' + name + '.'); });
如果使用控制台IO,则可能需要在环境中包含jsh(Javascript Shell)。 有关操作方法,请参见http://code.google.com/p/jsh/ 。 希望这可以帮助。
我们可以做的是挂钩console.log,所以每当它记录我们可以访问的内容时,否则没有像firefox中那样的直接方法,这可以通过一个简单的单行代码为我们做到这一点。
var tempStore = []; var oldLog = console.log; console.log = function() { tempStore.push(arguments); oldLog.apply(console, arguments); }
这是从控制台输入的解决方案。 试试吧!!
process.stdin.resume(); process.stdin.setEncoding('ascii'); var stdInput = ""; var stdInputArr = ""; var index = 0; process.stdin.on('data', function (data) { stdInput += data; }); process.stdin.on('end', function () { stdInputArr = stdInput.split("\n"); main(); }); // Reads complete line from STDIN function readLine() { return stdInputArr[index++]; } //call this function in the main function
javascript node.js jquery 控制台 web
执行此操作的一种棘手方法是将getter分配给窗口对象的属性
Object.defineProperty(window, 'customCommand', { get: function() { console.log("hey"); return "hey"; } });
因此,当您键入“customCommand”(不带括号)时,它会在控制台“获取”变量时将console.log文本打印到控制台。
你仍然需要返回一些内容,但我不确定如何更改顺序,以便首先返回值,然后控制台中的文本显示为第二个。 这绝对是可能的,但我已经看到了这种情况。