我正在开发一个需要显示日文字符的javascript记忆游戏.是否有跨浏览器方式检测亚洲语言或日语的支持?
window.navigator.language将被设置为浏览器的语言,但是错过了那些没有将日语设置为浏览器语言的人(?).
是否有跨浏览器方式检测亚洲语言或日语的支持?
你的意思是"是否安装了日语字体"?因为现代操作系统可以配置的"支持亚洲语言"的唯一其他方面是否知道像Shift-JIS这样的字符编码是否已知(Windows上的代码页932).但是你通常不需要这样,因为你可以使用UTF-8,它更干净,并且在任何地方都受到支持.
通常,您无法直接判断是否安装了特定字符范围的字体,但有多种方式.例如,测量页面文本的渲染大小:
var half= document.createElement('span'); var full= document.createElement('span'); half.appendChild(document.createTextNode('\uFF71')); full.appendChild(document.createTextNode('\u30A2')); document.body.insertBefore(half, document.body.firstChild); document.body.insertBefore(full, document.body.firstChild); var havejapanesefont= half.offsetWidth!=full.offsetWidth; document.body.removeChild(half); document.body.removeChild(full);
这暂时创建了包含片假名'a'的半宽和全宽变体的元素.如果有日文字体,我们可以预期它们的宽度不同.如果不存在这样的字体,它们很可能被渲染为具有相同宽度的类似"不可渲染字符"字形.