【发布时间】:2014-06-16 10:14:47
【问题描述】:
我正在使用 JavaScript 添加 CSS 样式(特别是使用 GreaseMonkey 的 GM_addStyle)。
我想在 CSS 属性中添加一个 Unicode 字符。我见过很多像this one 这样的问题,答案似乎总是类似于
#target:before {
content: "\2611";
}
现在,正如我所说,这种样式在GM_addStyle 中指定,并且调用函数启用了严格模式。当我的脚本运行时,我在控制台上收到错误消息octal literals and octal escape sequences are deprecated。
我认为这里的冲突是在 JavaScript 中进行操作(即将 Unicode 字符放入 JavaScript 字符串)和 CSS 中的操作(在声明 CSS 属性时转义字符)之间的冲突。我应该使用什么语法来使字符转义而不产生错误?
【问题讨论】:
-
您的问题令人困惑 - 您指的是 JavaScript 还是 CSS,或两者兼而有之?据我所知,CSS 中的转义序列从未被任何规范弃用。
-
我认为我的困惑是根本问题。我正在使用
GM_addStyle添加 CSS 样式定义;我认为这实际上是在使用 JavaScript 编写新的<style>标签。因此,十六进制/八进制 -> Unicode 字符转换实际上是在解释 JavaScript 字符串时发生的。这就是为什么保罗的回答是正确的。 -
CSS 从来没有“八进制转义序列”。这里涉及到真正的问题,但它似乎与 JavaScript 相关,而不是 CSS。恐怕它表达得如此混乱,以至于这个问题对未来的访问者几乎没有用处。
-
我认为你是对的,Jukka;我将添加一个后记以尝试澄清。
-
另外,如果有人在我下面的评论中错过了它,我想提高this article on JavaScript string escapes 的知名度,这确实有助于理顺我。
标签: javascript css escaping strict