【问题标题】:How to set Unicode character as badge text on browser action in Chrome extension?如何在 Chrome 扩展程序中将 Unicode 字符设置为浏览器操作的标记文本?
【发布时间】:2015-07-19 06:11:28
【问题描述】:

我刚刚开始开发一个 Chrome 扩展程序,除了这个小问题,我几乎完成了。

我想将 Unicode 字符设置为浏览器操作上的标记文本,但到目前为止我所尝试的工作。

这是它现在的样子。

  • Unicode 字符 - ????(也称为“便便”)
  • 它的 Unicode - U+1F4A9(来自here

到目前为止我尝试了什么:

chrome.browserAction.setBadgeText({text: '💩'});   //shows '💩'
chrome.browserAction.setBadgeText({text: 'U+1F4A9;'});    //shows 'Ú+1F4A9;'
chrome.browserAction.setBadgeText({text: '\U1F4A9;'});    //shows '\U1F4A9;'
chrome.browserAction.setBadgeText({text: '\\U1F4A9;'});   //shows '\\U1F4A9;'
chrome.browserAction.setBadgeText({text: '????'});          //shows empty box

我应该怎么做才能显示??????

更新:正如@Xan 在他的回答和评论中提到的那样,UI 呈现无法控制。

所以,我尝试这样做 <title>????</title> 以查看 Chrome 是否可以呈现它,以及它是否可以在标签标题中显示 ????

原来Chrome可以。

那么,为什么 Chrome 不能在一个地方(浏览器操作)渲染 ???? 而可以在另一个地方(标签标题或标题栏)?

【问题讨论】:

  • 在您的网页上向下滚动到“C/C++/Java Src”,您将看到正确的转义序列:\uD83D\uDCA9。如果您看到一个框(这是我在 Firefox 和 Chrome 中看到的),则该字体没有 Pile of Poo 字形。
  • 你在什么操作系统下尝试这个?当您使用文字时,例如“я”,您的运气会更好吗?
  • @pvg 我在 Windows 8.1 OS - 64bit 上尝试这个,字符 я 工作正常,但 ???? 不行。
  • 这可能是因为 'я' 或 'ya' 是西里尔字母和单个字符,几乎所有国际字体都支持。大多数表情符号由两个字符组成。

标签: javascript unicode google-chrome-extension browser-action


【解决方案1】:

正如 Rob 的评论所示,最后一种形式是正确的。

但是,用于徽章的字体根本没有那个 Unicode 字符,而且 Chrome 只使用 1 种字体作为徽章,而不是寻找替代品。

因此,你运气不好。

【讨论】:

  • 有什么方法可以在我的支持?的Chrome扩展程序中包含这样的字体,就像我们在常规网络应用程序中所做的那样?
  • 否;您无法指定用于 UI 渲染的字体。
  • @ShrinivasShukla 为什么字体很重要?字体替换算法不应该回退到使用任何字体来处理默认字体中缺失的字形吗?
  • @tchrist 在网页内容中,是的。在 Chrome 自己的 UI 元素中,显然不是。
  • @ShrinivasShukla *shrug* Chrome 只是对徽章进行任何替换。有一套字体,就是这样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-09
  • 2015-11-19
  • 2021-12-30
  • 2016-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多