Консоль консоли Chrome не работает с версией 54.0.2840.99

Я использую node-inspector для отладки JS с Chrome версии 54.0.2840.99. Я ввожу "node-inspector" в одну консоль Windows cmd и "node --debug-brk l:\dev\debug\test.js" в другой консоли cmd. Откройте "http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858" в Chrome. Он может отлаживать, как обычно. Но я вводил "1 + 2" в консоли Chrome, нажимаю "Enter" , ничего не происходит. Я ожидаю, что "3" будет выводиться на консоль Chrome. Он работал с Chrome версии 48.0.2564.116. Я не тестировал другие версии Chrome.

Это дефект новых версий Chrome? Как решить проблему? Я снял фотографии, как показано ниже: введите описание изображения здесь

введите описание изображения здесь введите описание изображения здесь

Это вызвано тем, что Chrome устарел KeyboardEvent.keyIdentifier .

keyIdentifier было бы добавить keyIdentifier обратно в прототип KeyboardEvent .

Я также заметил, что строковые значения KeyboardEvent.key отличаются от значений из KeyboardEvent.keyIdentifier поэтому я покажу ниже, как обрабатывать эти различия, если это необходимо.

 Object.defineProperty(KeyboardEvent.prototype, 'keyIdentifier', { get: function() { switch (this.key) { case "ArrowDown": return "Down"; break; case "ArrowLeft": return "Left"; break; case "ArrowRight": return "Right"; break; case "ArrowUp": return "Up"; break; case "Tab": return "U+0009"; break; case "Escape": return "U+001B"; break; default: return this.key; } } }); 

Просто заменить isEnterKey() недостаточно, и вышеуказанный код обрабатывает это исправление.

Обходной путь, предложенный здесь , trojanliu , будет редактировать файл DOMExtension.js , изменяя isEnterKey()

 vi /usr/local/lib/node_modules/node-inspector/front-end/platform/DOMExtension.js /isEnterKey 

… для проверки keyCode === 13 :

 function isEnterKey(event) { //suit for event.keyIdentifier return (event.keyCode !== 229 && event.keyIdentifier === "Enter") || event.keyCode === 13; }