Как расширить существующий пользовательский элемент?

У меня есть пользовательский элемент с именем x-foo. Я хотел бы расширить его и создать элемент x-foo-extended, но он не работает. Я получаю эту ошибку:

Uncaught NotSupportedError: Не удалось выполнить «registerElement» в «Документе»: Ошибка регистрации для типа 'x-foo-extended'. Имя тега, указанное в 'extends', является именем пользовательского элемента. Вместо этого используйте наследование.

    var xFooExtendedProto = Object.create(xFoo.prototype);

    xFooExtendedProto.someCustomFunc = function() {
        // ...
    };

    xFooExtended = document.registerElement('x-foo-extended', {
        prototype: xFooExtendedProto,
        extends: 'x-foo'
    });

person Iter Ator    schedule 04.01.2015    source источник


Ответы (1)


Согласно spec, это не разрешено. Из спецификации: «Если BASE не существует или является интерфейсом для пользовательского элемента, установите для ERROR значение InvalidName и остановитесь».

Источник: согласно описанию человека, внедрившего пользовательские элементы в Chrome https://lists.w3.org/Archives/Public/public-webapps/2014OctDec/0155.html

person deepak    schedule 27.02.2015