我在一个音乐相关网站上工作,经常使用 HTML 特殊字符升号 (♯) 和降号 (♭) 来保持美观,例如:
♯
♭
但是,我注意到某些浏览器(IE6、PC 版 Safari)不支持这些字符。我创建了一个条件 javascript,它提供普通的、受支持的字符来代替特殊字符(G# 代表 G♯ 和 Bb 代表 B♭)。但我很难弄清楚如何检测哪些浏览器缺少这些字符。
我知道我可以测试浏览器(例如 ie6),但我希望做正确的事情并测试 字符支持 本身。
有谁知道使用 javascript、jQuery 或 rails 执行此操作的好方法? (该页面由 Rails 应用程序提供服务,因此请求对象和任何其他 Rails 魔法都在桌面上。
最佳答案
如果你创建两个SPAN,一个包含你想要的字符,另一个包含不可打印字符U+FFFD(�)是一个好的,那么你可以测试它们是否具有相同的宽度。
<div style="visibility:hidden">
<span id="char-to-check">♯</span>
<span id="not-renderable">�</span>
</div>
<script>
alert(document.getElementById('char-to-check').offsetWidth ===
document.getElementById('not-renderable').offsetWidth
? 'not supported' : 'supported');
</script>
您应该确保 DIV 没有使用固定字体设置样式。
关于javascript - 在javascript中检测浏览器字符支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4635683/