javascript - 在javascript中检测浏览器字符支持?

标签 javascript jquery html ruby-on-rails character-encoding

我在一个音乐相关网站上工作,经常使用 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">&#9839;</span>
  <span id="not-renderable">&#xfffd;</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/

相关文章:

javascript - 使用 laravel 验证后,ajax 上的成功函数

javascript - jQuery 看不到新创建的对象。如何刷新 DOM 对象列表?

html - 元素未正确调整大小

javascript - 如何在可以最小化的网站导航栏顶部创建报价条?

javascript - 注销确认对话框

javascript - 开发函数以查找数字序列的所有排列

jquery:在特定部分输入Tab触发器

jquery - Plotly 绘图无法在模态内自动缩放

html - 无法在Go中将图像添加到html模板

javascript - 强制 iframe 中的下一页加载中断