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

Dan*_*uan 18 javascript console jquery google-chrome web

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

Ved*_*rya 5

这是一种接受输入的间接方法:

在 JavaScript 中声明一个函数:

function your_command_here()  {
    //code
}
Run Code Online (Sandbox Code Playgroud)

由于 Chrome 的控制台基本上提供了与页面内容通信的方法,例如 JavaScript 变量、函数等,因此可以选择将函数声明为可接收命令。

在控制台中,为了提供输入,用户应键入:
your_command_here()

另一种解决方法是:
声明一个函数:

function command(var cmnd)  {
    switch(cmnd)  {
        case "command1":
            //code
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以用户可以(更方便地)输入:
command("user's command here")


Mar*_*ski 5

一个棘手的方法是为 window 对象的属性分配一个 getter

Object.defineProperty(window, 'customCommand', {
  get: function() {
    console.log("hey");
    return "hey";
  }
});
Run Code Online (Sandbox Code Playgroud)

因此,当您键入“customCommand”(不带括号)时,它将在控制台“获取”变量时将您的 console.log 文本打印到控制台。

不过,您仍然需要返回一些内容,我不确定如何更改顺序,以便首先返回值,然后显示控制台中的文本。不过这绝对有可能,我已经看到这种情况发生了。


小智 1

如果您使用控制台 IO,您可能需要将 jsh (Javascript Shell) 合并​​到您的环境中。请参阅http://code.google.com/p/jsh/了解操作方法。希望这可以帮助。