如何从 Chrome 的 Javascript 控制台获取输入?
Posted
技术标签:
【中文标题】如何从 Chrome 的 Javascript 控制台获取输入?【英文标题】:How to get input from Chrome's Javascript console? 【发布时间】:2012-01-08 02:52:03 【问题描述】:有没有办法以编程方式从 Google Chrome 的 javascript 控制台获取输入,类似于 Firefox 中的readline()
?
【问题讨论】:
您可以在控制台中输入您要评估的代码,它会立即被评估。例如,尝试在控制台中输入alert("Hello World!");
。这不是您问题的完整答案,但它是一个很好的起点。
【参考方案1】:
这是一种获取输入的间接方法:
在 JavaScript 中声明一个函数:
function your_command_here()
//code
由于 Chrome 的控制台基本上提供了与页面内容通信的方法,例如 JavaScript 变量、函数等,因此可以选择将函数声明为可接收命令。
在控制台中,为了提供输入,用户应键入: your_command_here()
另一种解决方法是: 声明一个函数:
function command(var cmnd)
switch(cmnd)
case "command1":
//code
break;
所以用户可以(更方便地)输入: command("这里是用户的命令")
【讨论】:
我太傻了,我自己都没意识到command("user's command here")
有多酷。谢谢你的指导!
【参考方案2】:
一个棘手的方法是将一个 getter 分配给一个窗口对象的属性
Object.defineProperty(window, 'customCommand',
get: function()
console.log("hey");
return "hey";
);
因此,当您键入“customCommand”(不带括号)时,它会在控制台“获取”变量时将您的 console.log 文本打印到控制台。
尽管如此,您仍然需要返回一些东西,而且我不确定您如何更改顺序,以便首先返回值,然后显示控制台中的文本。不过这绝对是可能的,我已经看到了这种情况。
【讨论】:
【参考方案3】:我们可以做的是挂钩console.log,这样每当它记录我们可以访问的东西时,就没有像firefox那样直接的方法,它可以用简单的单行代码为我们做到这一点。
var tempStore = [];
var oldLog = console.log;
console.log = function()
tempStore.push(arguments);
oldLog.apply(console, arguments);
【讨论】:
【参考方案4】:如果您使用控制台 IO,您可能需要在您的环境中加入 jsh(Javascript Shell)。有关操作方法,请参阅http://code.google.com/p/jsh/。希望这会有所帮助。
【讨论】:
【参考方案5】:抱歉,不能在 Chrome JS 控制台上工作,只能在 repl.it 的 repl 上工作
repl.it 中的示例:
console.log("Enter your name:");
console.read(function(name)
console.log('Your name is ' + name + '.');
);
【讨论】:
【参考方案6】:这是从控制台输入的解决方案。 试试这个!!
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
【讨论】:
以上是关于如何从 Chrome 的 Javascript 控制台获取输入?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 javascript 从网页中删除 HTML 元素? (尝试做一个chrome扩展)
如何从JavaScript中引用属于Chrome扩展程序的文件