这位 Reddit 用户发现 Chrome 在粘贴时有一个有趣的用户体验行为。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
。但是,空格不是粘贴到地址栏时保留。
使用 ctrl+c、ctrl+v,空格都不会在window.prompt
地址栏中保留。
评论者报告说,这种行为在 OSX 中并不存在。