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

时间:2015-02-20 08:02:49

标签: html web-component custom-element

令人惊讶的是无法在Google上找到这个...

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

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

1 个答案:

答案 0 :(得分:1)

TL; DR great 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()不同:

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

我建议浏览器内部尚未准备好:

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

虽然您可以轻松指定:

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

我知道这并不是你所期望的答案,但我希望它有所启发。