Этот реддиторНашел интересное поведение Chrome UX при вставке. Chrome сжимает пробелы при вставке в адресную строку или в window.prompt
. Но не сжимает при вставке в поля ввода или в консоль.
Вот готовый к запуску фрагмент с примерами входных и выходных данных.
В Chrome:
input | typed | copy/pasted
"h e l l o w o r l d" | 9 spaces | 9 spaces
"hello world" | 9 spaces | 1 spaces
В Firefox:
input | typed | copy/pasted
"h e l l o w o r l d" | 9 spaces | 9 spaces
"hello world" | 9 spaces | 9 spaces
var str = window.prompt('Enter a few spaces.');
var spaces = (str.match(/ /g) || []).length;
console.log(`You entered ${spaces} spaces`);
Задокументировано ли это поведение где-либо в Chrome? Я не могу найти это через беглый поиск. Следует ли считать это ошибкой Chrome? С одной стороны, было бы неплохо придержать некоторых пользователей, но с другой стороны, Chrome не уважает явные инструкции пользователей.
Есть ли способ предотвратить такое поведение или обойти его?
Дополнительные результаты по Chrome 65 на Linux:
Используя буфер копирования выделения X (выделение, щелчок средней кнопкой мыши), пробелы сохраняются при вставке в поле window.prompt
ввода. Но пробелынетсохраняется при вставке в адресную строку.
При использовании ctrl+c, ctrl+v пробелы не сохраняются ни в window.prompt
адресной строке, ни в тексте.
Комментаторы сообщают, что в OSX такое поведение отсутствует.