Este redditorencontrei um comportamento interessante do Chrome UX ao colar. O Chrome compacta espaços quando colado na barra de endereço ou em arquivos window.prompt
. Mas não aperta ao colar nos campos de entrada ou no console.
Aqui está um trecho executável com exemplos de entradas e saídas.
No 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
No 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`);
Esse comportamento está documentado em algum lugar do Chrome? Não consigo encontrar isso através de uma pesquisa superficial. Isso deveria ser considerado um bug do Chrome? Por um lado, poderia ser bom segurar certos usuários, mas por outro lado, o Chrome não respeita as instruções explícitas dos usuários.
Existe uma maneira de evitar esse comportamento ou contornar?
Mais descobertas no Chrome 65 no Linux:
Usando o buffer de cópia de seleção X (selecionar, clicar com o botão do meio), os espaços são preservados ao colar em uma window.prompt
entrada. Mas os espaços sãonãopreservado ao colar na barra de endereço.
Usando ctrl+c, ctrl+v, os espaços não são preservados nem window.prompt
na barra de endereço.
Os comentaristas relatam que esse comportamento não está presente no OSX.