Как получить ввод из консоли Chrome Javascript? - PullRequest
17 голосов
/ 28 ноября 2011

Есть ли способ программно получить данные из консоли Javascript в Google Chrome, аналогично readline() в Firefox?

Ответы [ 6 ]

4 голосов
/ 20 сентября 2018

Сложный способ сделать это - присвоить метод получения свойству оконного объекта

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

Таким образом, когда вы набираете «customCommand» (без скобок), он будет печатать ваш текст console.log в консоли, пока консоль «получает» переменную.

Вам все равно придется что-то возвращать, и я не уверен, как вы могли бы изменить порядок, чтобы значение возвращалось первым, а текст в консоли появлялся вторым. Хотя это определенно возможно, я видел, как это произошло.

3 голосов
/ 28 декабря 2015

Это косвенный метод получения входных данных:

Объявление функции в JavaScript:

function your_command_here()  {
    //code
}

Поскольку консоль Chrome в основном предоставляет методы для взаимодействия с содержимым страницы, например с переменными JavaScript,функции и т. д., поэтому можно объявить функцию как получаемую команду.

В консоли для ввода данных пользователь должен ввести:
your_command_here ()

ДругойОбходной путь:
Объявление функции:

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

Таким образом, пользователь может (более удобно) набрать:
command ("команда пользователя здесь")

1 голос
/ 07 мая 2013

Извините, не работает в консоли Chrome JS, просто работает с repl из repl.it

Пример из repl.it:

console.log("Enter your name:");
console.read(function(name) {
  console.log('Your name is ' + name + '.');
});
0 голосов
/ 05 апреля 2018

Вот решение для ввода с консоли.Попробуйте это !!

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

0 голосов
/ 03 июля 2015

Мы можем подключить console.log, чтобы каждый раз, когда он регистрировал что-то, к чему мы можем получить доступ, в противном случае не существует такого прямого метода, как в Firefox, который делает это возможным для нас в простом однострочном коде.

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

console.log = function() {
    tempStore.push(arguments);
    oldLog.apply(console, arguments);
}
0 голосов
/ 27 августа 2012

Возможно, вам понадобится включить jsh (Javascript Shell) в вашу среду, если вы работаете с консольным вводом-выводом. См. http://code.google.com/p/jsh/ для получения инструкций. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...