有没有办法以编程方式从Google Chrome的Javascript控制台获取输入,类似于Firefox中的readline()
?
答案 0 :(得分:3)
这是一种接受输入的间接方法:
在JavaScript中声明一个函数:
function your_command_here() {
//code
}
由于Chrome的控制台基本上提供了与页面内容(如JavaScript变量,函数等)进行通信的方法,因此可以选择将函数声明为可接收命令。
在控制台中,为了提供输入,用户应键入:
your_command_here()
另一个解决方法是:
声明一个函数:
function command(var cmnd) {
switch(cmnd) {
case "command1":
//code
break;
}
}
因此用户可以(更方便地)输入:
命令("用户的命令在这里")
答案 1 :(得分:3)
一种棘手的方法是将吸气剂分配给窗口对象的属性
$
因此,当您键入“ customCommand”(不带括号)时,它将在控制台“获取”变量时将console.log文本打印到控制台。
尽管如此,您仍然必须返回一些内容,而且我不确定如何更改顺序,以便首先返回值,然后在控制台中显示文本。不过,绝对有可能,我已经看到了这种情况。
答案 2 :(得分:1)
抱歉,无法在Chrome JS控制台上运行,只需处理来自repl.it的repl
repl.it的例子:
console.log("Enter your name:");
console.read(function(name) {
console.log('Your name is ' + name + '.');
});
答案 3 :(得分:0)
如果您正在使用控制台IO,则可能需要在环境中合并jsh(Javascript Shell)。有关操作方法,请参阅http://code.google.com/p/jsh/。希望这会有所帮助。
答案 4 :(得分:0)
我们可以做的是挂钩console.log,所以每当它记录我们可以访问的内容时,否则没有像firefox中那样的直接方法,这可以通过简单的单行代码为我们做到这一点。
var tempStore = [];
var oldLog = console.log;
console.log = function() {
tempStore.push(arguments);
oldLog.apply(console, arguments);
}
答案 5 :(得分:0)
以下是从控制台输入的解决方案。 试试吧!!
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