Используя спецификацию веб-компонентов, возможно ли расширить определенный тип элемента <input>
?
Этот вопрос похож на мой, но только указывает, как расширить элемент button
, а не текстовый ввод или любой другой вариант тега <input>
.
В моем случае я хотел бы расширить флажок (<input type="checkbox" />
) или переключатель (<input type="radio" />
), чтобы обернуть более сложный пользовательский интерфейс вокруг той же функциональности основного элемента ввода, но я не вижу никакого способа сделать это с помощью Синтаксис extends
предоставлен document.registerElement
. На мой взгляд, может показаться, что вы должны быть в состоянии сделать что-то вроде следующего:
document.registerElement('x-checkbox', {
prototype: Object.create(HTMLInputElement.prototype),
extends: 'input[type=checkbox]'
});
Однако этот конкретный случай, кажется, не задокументирован и не объяснен нигде, что я могу найти, и я вполне уверен, что этот пример не будет работать на практике.
setAttribute('type', 'checkbox')
для объекта HTMLInputElement, прежде чем устанавливать его какprototype
. - person Matt Browne   schedule 26.08.2014type
сама по себе решит эту проблему. - person JoshMock   schedule 26.08.2014is
. Не об этом думал. Вы можете быть на что-то там. - person JoshMock   schedule 26.08.2014is
необходимо использовать, если вы расширяете другой стандартный элемент HTML. Поскольку элементаcheckbox
нет, вы не можете расширять такие вещи, какinput[type=checkbox]
или радио. Расширьте весь элемент ввода и укажите тип. - person Derek 朕會功夫   schedule 26.08.2014