Javascript 如何创建名称中包含特殊字符的自定义元素?

Javascript 如何创建名称中包含特殊字符的自定义元素?,javascript,html,unicode,custom-element,createelement,Javascript,Html,Unicode,Custom Element,Createelement,我有一个在外部库中注册的自定义HTML元素,其名称包含特殊的Unicode字符。我想动态创建这种元素,所以我尝试使用document.createElement,但这样做会导致Chrome和Firefox中出现运行时错误,因为元素的名称显然无效。只有Safari允许以这种方式创建元素 以下是一个简化的示例: //外部代码 类TestElement扩展了HtmleElement { } customElements.define(“情感-您可以使用innerHTML代替document.crea

我有一个在外部库中注册的自定义HTML元素,其名称包含特殊的Unicode字符。我想动态创建这种元素,所以我尝试使用
document.createElement
,但这样做会导致Chrome和Firefox中出现运行时错误,因为元素的名称显然无效。只有Safari允许以这种方式创建元素

以下是一个简化的示例:

//外部代码
类TestElement扩展了HtmleElement
{ }

customElements.define(“情感-您可以使用
innerHTML
代替
document.createElement
在DOM中创建元素

//外部代码
类TestElement扩展了HtmleElement
{ }

customElements.define(“情感-确保您正在使用:

<meta charset="UTF-8">

或者尝试使用此解决方案:

function emojiUnicode (emoji) {
    var comp;
    if (emoji.length === 1) {
        comp = emoji.charCodeAt(0);
    }
    comp = (
        (emoji.charCodeAt(0) - 0xD800) * 0x400
      + (emoji.charCodeAt(1) - 0xDC00) + 0x10000
    );
    if (comp < 0) {
        comp = emoji.charCodeAt(0);
    }
    return comp.toString("16");
};
emojiUnicode("To complete other answer you'd rather use 
new
with the
class
name to create the custom element:

document.body.appendChild( new TestElement )
函数emojionicode(表情符号){
var-comp;
if(emoji.length==1){
comp=emoji.charCodeAt(0);
}
薪酬=(
(emoji.charCodeAt(0)-0xD800)*0x400
+(emoji.charCodeAt(1)-0xDC00)+0x10000
);
if(comp<0){
comp=emoji.charCodeAt(0);
}
返回公司toString(“16”);
};

emojiUnicode(“要完成其他答案,您最好使用
new
class
名称来创建自定义元素:

请参见下面的示例:

class TestElement扩展了HtmleElement{
构造函数(){
超级()

log('emotion-我不知道您的代码中使用自定义元素的正常方式。如果这有帮助,我最近发布了一个使用自定义元素的响应->