3

extends 属性的用例似乎非常简单(http://www.x-tags.org/docs#custom-tag-registration-extends),但是使用以下标记定义进行测试:

(function () {
    xtag.register('dk-foo', {
        extends: 'b',
        lifecycle: {
            created: function () {
                this.innerHTML = '*FOO*';
            }
        }
    });
}());

和标记:

<dk-foo>Hello BAR</dk-foo>

似乎没有任何效果(即文本不是粗体),更糟糕的是,它在 Chrome 上中断。

我已经测试过 IE11、FF28、Safari 5.1.17 和 Chrome 33/35。除 Chrome 外,每个浏览器都在其中运行代码lifecycle.created(即将文本更改为*FOO*)。如果我删除extends它也可以在 Chrome 上运行的属性。

除了上面的文档之外,我找不到更多的文档,也找不到任何extends使用它的标签(尽管我当然没有看过所有这些……)。

我可能只是extends错误地使用了该属性..?

4

1 回答 1

4

根据此评论

当你扩展一个元素时,你需要在你的标记中使用 is="" 语法: 。is="" 属性是标准的一部分,它是从原生元素创建自定义元素的唯一方法。

我试过了,你实际上需要is= extends. 我不喜欢,is=所以我实际上只是在创建一个内部元素,在你的情况下,一个 inner b

于 2014-04-23T22:00:51.557 回答