如何从Chrome's Javascript控制台获得输入
How to get input from Chrome's Javascript console?
是否有一种方法可以通过编程方式从Google Chrome的Javascript控制台获得输入,类似于Firefox中的readline()
?
一种比较棘手的方法是为窗口对象的属性赋值getter
Object.defineProperty(window, 'customCommand', {
get: function() {
console.log("hey");
return "hey";
}
});
所以当你输入"customCommand"(没有括号)时,它会在控制台"获取"变量时将你的console.log文本打印到控制台。
您仍然需要返回一些东西,但我不确定如何更改顺序,以便首先返回值,然后在控制台中显示文本。但这绝对是可能的,我已经看到这种情况发生了。
这是一个获取输入的间接方法:
在JavaScript中声明函数:
function your_command_here() {
//code
}
由于Chrome的控制台基本上提供了与页面内容通信的方法,如JavaScript变量,函数等,因此将函数声明为应收命令可以是一个选项。
在控制台中,为提供输入,用户应键入:
your_command_here ()
另一个解决方法是:
声明函数:
function command(var cmnd) {
switch(cmnd) {
case "command1":
//code
break;
}
}
所以用户可以(更方便地)输入:
命令("此处的用户命令")
我们可以做的是钩子console.log,所以当它记录的东西我们可以访问,否则没有这样的直接方法,像在firefox中,这可能为我们在一个简单的单行代码。
var tempStore = [];
var oldLog = console.log;
console.log = function() {
tempStore.push(arguments);
oldLog.apply(console, arguments);
}
如果您正在使用控制台IO,则可能需要在环境中合并jsh (Javascript Shell)。请参阅http://code.google.com/p/jsh/了解如何操作。
对不起,不工作在Chrome JS控制台,只是工作在repl从repl.
示例来自replit:
console.log("Enter your name:");
console.read(function(name) {
console.log('Your name is ' + name + '.');
});
这是一个从控制台输入的解决方案。试试这个!!
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 consoleweb
你最好使用:
myVar = prompt('Which value do your want?')
在基于控制台的环境中(例如浏览器开发工具中的JavaScript控制台或Node.js环境),您可以使用readline
模块来处理用户输入。
下面是一个使用readline
模块在Node.js环境中读取用户输入的示例:
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,但在不同的环境或平台中,处理用户输入的方式可能会有所不同。
- 为什么我能够从javascript控制台发送跨域ajax请求
- 将数组的拼接分配给自身时,Javascript控制台打印不起作用
- 如何使Visual Studio自动清除Javascript控制台
- 只有当Javascript控制台在chrome上打开时,Javascript才能工作
- 打印javascript控制台的堆栈跟踪
- 如何在调试模式停止后查看Visual Studio 2015 Javascript控制台
- 如何:编写漂亮的HTML代码和Javascript控制台
- 我有可能防止黑客使用网络控制台用JavaScript重复调用upvote(AJAX)函数吗
- 执行JavaScript代码,使用selenium webdriver或WatiN从控制台获取日志
- 调用Javascript时出现控制台错误
- system.err风格的控制台以javascript打印
- 在类似chrome的浏览器中停止控制台javascript命令
- 为什么没有任何内容记录到控制台?{JavaScript}.
- 如何在页面加载时执行控制台 Javascript
- 所有错误都显示在 Chrome 控制台 JavaScript 错误中
- 如何将 neo4j 查询打印到控制台?(Javascript)
- 慢下来,控制台.(javascript/jquery)
- 控制台JavaScript的浏览器兼容性
- 滑块不工作,没有错误在控制台- Javascript香草
- 如何将消息记录到web开发人员控制台-JavaScript