Chrome错误地将区域设置应用于CSSStyleSheet中的值

时间:2018-03-09 17:34:12

标签: javascript css google-chrome

在macOS High Sierra的Chrome Version 65.0.3325.146中,CSSStyleSheet是否将区域设置应用于其值?以下html重现错误。它为俄语系统区域设置打印错误的输出,其中“,”用作小数分隔符。

<script>
var el = document.createElement('style');
el.innerHTML = '.someclass {font-size: 3.5rem; line-height: 1.5rem;}';
document.head.appendChild(el);
console.log(el.sheet.cssRules[0].style.cssText);    
</script>

输出结果为:

font-size: 3,5rem; line-height: 1,5rem;

预期产出:

font-size: 3.5rem; line-height: 1.5rem;

有问题的屏幕截图(在浏览器控制台中检查):

Screenshot with problem

1 个答案:

答案 0 :(得分:0)

这里真的很奇怪。

~/.profile注释掉以下字符串并重新启动Chrome后出现问题:

export LC_NUMERIC=ru_RU.UTF-8
export LC_TIME=ru_RU.UTF-8
export LC_COLLATE="en_US.UTF-8" 
export LC_MONETARY=ru_RU.UTF-8
export LC_MESSAGES="en_US.UTF-8" 
export LC_PAPER=ru_RU.UTF-8
export LC_NAME=ru_RU.UTF-8
export LC_ADDRESS=ru_RU.UTF-8
export LC_TELEPHONE=ru_RU.UTF-8
export LC_MEASUREMENT=ru_RU.UTF-8
export LC_IDENTIFICATION=ru_RU.UTF-8
export LC_ALL=

但在我将字符串取消注释后 - 问题不再发生了。试过Chrome&amp;系统重启。

在评论字符串之前,Chrome重启并没有帮助解决问题。可能只是系统重启可以解决问题(没有尝试过):)

UPD :终于找到了,如何重现问题 - 必须使用这些变量集(LC_NUMERIC,...)从终端(命令行)启动Chrome。