如何从Chrome的Javascript控制台获取输入?

时间:2011-11-28 16:55:59

标签: javascript jquery google-chrome console web

有没有办法以编程方式从Google Chrome的Javascript控制台获取输入,类似于Firefox中的readline()

6 个答案:

答案 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