このredditor貼り付け時に 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 はユーザーの明確な指示を尊重していません。
この動作を防ぐ、または回避する方法はありますか?
Linux 上の Chrome 65 に関するその他の調査結果:
X選択コピーバッファ(選択、中クリック)を使用すると、入力に貼り付けるときにスペースが保持されますwindow.prompt
。ただし、スペースはないアドレスバーに貼り付けるときに保持されます。
window.prompt
ctrl+c、ctrl+v を使用すると、どちらにもアドレスバーにもスペースは保持されません。
コメント投稿者によると、この動作は OSX では発生しないそうです。