![为什么禁用 JavaScript 时会出现这些字符?](https://linux22.com/image/1456928/%E4%B8%BA%E4%BB%80%E4%B9%88%E7%A6%81%E7%94%A8%20JavaScript%20%E6%97%B6%E4%BC%9A%E5%87%BA%E7%8E%B0%E8%BF%99%E4%BA%9B%E5%AD%97%E7%AC%A6%EF%BC%9F.png)
有人知道为什么在 Firefox 中禁用 JavaScript 时会出现这些字符吗?它们会替换页面上的图像。这不仅仅是 WordPress 的问题,而且当启用 JavaScript 时,它们会变回按钮。
我很好奇为什么这些字符对于每个图像都不同。我意识到 JavaScript 用于放入图像中。
屏幕截图是在启用了 ABP 和 NoScript 的 WordPress 仪表板内拍摄的。以下是产品和解决方案附近字符的另一个示例:http://www.bloomberg.com/professional/
如果您的配置与我相同,则可能只会看到错误。Firefox、Ubuntu、ABP、NoScript。
答案1
图标来自图标字体,这是一种特殊的字体,其中所有字符都是图标。这就是为什么每个字符都是不同的 - 不同的字符对应字体中的不同图标。
由于大多数人的电脑上没有安装此类字体,因此大多数使用这些字体的网站都会从自己的服务器或第三方 CDN 加载这些字体。除了图标字体外,这种方式还常用于加载其他不常见的字体。从服务器而不是从您的电脑加载的字体有时被称为“webfonts”。
例如,WordPress 的仪表板使用 Open Sans 作为文本。但是,屏幕截图中的文本不是 Open Sans。这表明不仅图标字体无法加载,Open Sans 也无法加载。
为什么它们没有加载?我不知道。Webfonts 有时使用 JavaScript 加载,但即使禁用 JavaScript,我也无法在 WordPress 仪表板或您链接到的 Bloomberg 网站上重现此问题。可能还有其他原因。也许 ABP 出于某种原因阻止了字体。
编辑:自从你修改后,我去 Firefox 上安装了 NoScript,然后重试。之前,我禁用了只是通过开发者控制台使用 JavaScript。现在我明白你在说什么了。NoScript 是导致这种情况的原因。这并不是因为它阻止了 JavaScript,而是因为它阻止了字体本身。对我来说,唯一的区别是我看不到那些字符,我看到的是带有数字的方框。但那只是因为我使用的是 Windows,所以它回退到 Times New Roman,它不包含任何那些字符。在你的 Ubuntu 机器上,无论它回退到哪种字体,实际上都包含 WordPress 正在使用的那些晦涩难懂的字符。
答案2
HTML 渲染器将禁用的脚本解释为您安装的字体中的双字节字符。如果您未安装该字体,您将看到两个方框中的数字堆叠在一起的图像,这告诉用户那里应该有一个双字节字符。您看到的实际字符没有特殊意义。