
В настоящее время я нахожусь в процессе перемещения моей работы по веб-разработке из классических IDE в консоль веб-браузера. Это подразумевает частое редактирование существующего исходного кода, что на данный момент означает...
- регистрация источника, например
console.log(myFunc.toString())
- копирование текста в буфер обмена, что можно сделать как минимум двумя способами:
- нажмите RMBна сообщение консоли и выберите Copy Message(к сожалению, это также копирует какой-то мусор)
- перетащите LMBтекст сверху вниз и нажмите Ctrl+C(к сожалению, выделение текста путем перетаскивания подвержено ошибкам и в целом занимает много времени)
- (заблокирован)document.execCommand('копировать')может быть вызвано толькособытия щелчка
- вставка текста в консольный ввод
Я расположил желаемые мной рабочие процессы в следующем порядке:
- A-уровень: Я могу заполнить консольный ввод напрямую, вызвав одну функцию, без дополнительного взаимодействия с мышью или клавиатурой, например,
edit("some text")
напрямую копируя и вставляяsome text
- B-уровень: Я могу скопировать текст в буфер обмена, вызвав одну функциюбезИзменения DOM Ctrl+Vнеобходимы только для вставки содержимого буфера обмена, например
copy("some text")
- C-уровень: то же, что и B-уровень, но допускаются изменения DOM
- X-уровень: все, что связано с расширениями браузера для достижения решения уровня A, B или C
решение1
Решение уровня A не может быть достигнуто, поскольку это потребовало бы, чтобы код, введенный в командную строку, автоматически заменялся чем-то другим, что невозможно. То есть, для этого нет встроенной функциональности ирасширения в настоящее время (начиная с Firefox 69) не имеют доступа к командной строке.
Хотя копирование легко возможно черезcopy()
команда. Итак, если вы хотите отредактировать функцию в консоли, просто вызовите copy(myFunc.toString())
ее и вставьте через Ctrl+ V.
Конечно, это несколько ограничено, поскольку вы сможете редактировать только обычные глобальные функции, а не стрелочные функции, методы объектов или подобные вещи.
Для настоящих функций редактирования в реальном времени вам придется подождатьошибка 771339соответственно, это лучшеошибка 1559482для реализации.