html - 自定义元素名称可以包含 Unicode 吗?

标签 html web-component custom-element

令人惊讶的是在谷歌上找不到这个......

自定义元素的名称(如 W3C 规范的 Web 组件集)是否可以包含 unicode?

HTML 5 Custom element names?表示自定义元素名称必须以 ASCII 字符开头,包含连字符和任何其他字符。这是否意味着 unicode?

最佳答案

TL;DRgreat article解释 javascript 中允许使用哪些字符。不幸的是,这些不会像预期的那样与元素一起工作。至少,目前是这样。


原因是在新创建的自定义元素上调用的 document.registerElement 将失败:

var a = document.registerElement('a-ℵ');
//⇒ Uncaught SyntaxError: Failed to execute 
//    'registerElement' on 'Document': 
//    Registration failed for type 'a-ℵ'. 
//    The type name is invalid.

那是因为 registerElement 尝试创建内部构造函数,不同于通用 function HTMLElement()/function HTMLUnknownElement()registered 元素:

console.log(document.registerElement('a-b'));
//⇒ function a-b() { [native code] }

我建议浏览器的内部还没有准备好:

//⇒ function a-ℵ() { [native code] }

尽管您可能很容易指定:

var ℵ = function() { console.log('IT WORKS') };
ℵ();
//⇒ IT WORKS

我知道这不是您所期望的答案,但我希望它能给您带来一些启发。

关于html - 自定义元素名称可以包含 Unicode 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28624173/

相关文章:

javascript - PHP 和 Ajax : Illegal invocation

在特定点打破长单词的 HTML 字符

javascript - Canvas 重复矩形

ajax - 在 lit-element Web 组件中获取异步数据

javascript - 自定义选择标签

javascript - 使用动态扩展类表达式创建新元素

javascript - 使用 Polymer.Base.importHref 的 polymer 错误 "A type with that name is already registered"

html - 面包屑将使用 uikit 放置在右上角的侧按钮中

dart - 表格, polymer 中的RTF编辑器

javascript - 在 shadow DOM 中使用第三方脚本