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

vaqhlq81  于 2023-05-11  发布在  Go
关注(0)|答案(8)|浏览(288)

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

oxcyiej7

oxcyiej71#

一个棘手的方法是给一个窗口对象的属性赋值一个getter

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

因此,当您键入“customCommand”(不带括号)时,它将在控制台“获取”变量时将console.log文本打印到控制台。
但是你仍然需要返回一些东西,我不知道你如何改变顺序,使值首先返回,控制台中的文本出现在第二位。但这绝对是可能的,我见过这种情况发生。

yeotifhr

yeotifhr2#

这是一种获取输入的间接方法:
在JavaScript中声明一个函数:

function your_command_here()  {
    //code
}

由于Chrome的控制台基本上提供了与页面内容通信的方法,如JavaScript变量,函数等,因此将函数声明为可接收命令可以是一种选择。
在控制台中,为了提供输入,用户应键入:
your_command_here()
另一个解决方法是:
声明一个函数:

function command(var cmnd)  {
    switch(cmnd)  {
        case "command1":
            //code
        break;
    }
}

因此,用户可以(更方便地)键入:
command(“user's command here”)

0s7z1bwu

0s7z1bwu3#

我们可以做的是挂接console.log,这样每当它记录了我们可以访问的东西,否则就没有像firefox那样的直接方法,它可以在简单的单行代码中为我们做到这一点。

var tempStore = [];
var oldLog = console.log;

console.log = function() {
    tempStore.push(arguments);
    oldLog.apply(console, arguments);
}
mfuanj7w

mfuanj7w4#

如果您使用控制台IO,则可能需要在环境中合并jsh(Javascript Shell)。参见http://code.google.com/p/jsh/了解如何操作。希望这能帮上忙。

93ze6v8z

93ze6v8z5#

抱歉,无法在Chrome JS控制台上工作,只能在www.example.com的repl上工作repl.it
示例来自repl.it:

console.log("Enter your name:");
console.read(function(name) {
  console.log('Your name is ' + name + '.');
});
0sgqnhkj

0sgqnhkj6#

下面是从控制台输入的解决方案。试试这个!!

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

javascriptnode.jsjqueryconsoleweb

gg58donl

gg58donl7#

你可以做的更好的是用途:

myVar = prompt('Which value do your want?')
yptwkmov

yptwkmov8#

在基于控制台的环境中(例如浏览器开发工具或Node.js环境中的JavaScript控制台),您可以使用readline模块来处理用户输入。
下面是在Node.js环境中使用readline模块读取用户输入的示例:

const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

rl.question("Please enter your name: ", (name) => {
  console.log(`Hello, ${name}!`);
  rl.close();
});

在此代码中,readline模块用于创建阅读输入的接口。rl.question()函数提示用户问题“请输入您的姓名:然后捕获用户的响应并将其作为参数传递给回调函数(name) => {...}。在回调中,您可以处理用户的输入,执行任何必要的操作,并提供所需的输出。
处理完用户输入后,调用rl.close()关闭readline接口并允许程序正常退出是很重要的。
请记住,此特定示例使用Node.js,但在不同的环境或平台中,处理用户输入的方式可能会有所不同。

相关问题