будут ли пользовательские элементы v1 когда-либо работать в Internet Explorer 11?

похоже, что это не работает.

Обратите внимание, что я имею в виду пользовательские элементы v1, как указано здесь: https://developers.google.com/web/fundamentals/getting-started/primers/customelements

на моем сайте я в консоли javascript вижу

SCRIPT1002: Syntax Error, NewInvite.js Line 1, Column 1

Где находится первая строка в NewInvite.js

class NewInvites extends HTMLElement

Примечание. Я не имею в виду «полимер» или «веб-компоненты».

Наконец, сайт отлично работает в сафари, мобильном сафари и хроме.


person user1709076    schedule 23.06.2017    source источник
comment
Спросить Майкрософт? Насколько я читал, они добавляют в IE только исправления безопасности, а не новые функции. Вместо этого новые функции входят в Edge. Кроме того, вы тестировали Firefox, Opera, Vivildi?   -  person Dave S    schedule 24.06.2017
comment
спасибо, да, я только что нашел это. похоже, что Edge все еще голосует за то, сделают они это или нет? wpdev.uservoice.com/forums/257854- интернет-платформа-исследователь/   -  person user1709076    schedule 24.06.2017


Ответы (2)


Если вы хотите использовать несколько полифилов и немного дополнительного шаблона для каждого компонента, вы можете написать совместимые с v1 пользовательские элементы в ES5 (без классов), которые будут работать в IE11.

Основываясь на этом комментарии на github, вы можете использовать обычные функции для определения вашего настраиваемые элементы, а затем просто обязательно вызовите Reflect.construct внутри конструктора компонента.

function MyEl() {
  return Reflect.construct(HTMLElement,[], this.constructor);
}

MyEl.prototype = Object.create(HTMLElement.prototype);
MyEl.prototype.constructor = MyEl;
Object.setPrototypeOf(MyEl, HTMLElement);

MyEl.prototype.connectedCallback = function() {
  console.log('my-el connected');
};
customElements.define('my-el', MyEl);
document.body.appendChild(document.createElement('my-el'));

Полный рабочий пример см. в этой публикации.

person TwitchBronBron    schedule 11.05.2018

Похоже, ответ «Нет», а «Edge», который должен заменить «Internet Explorer», еще не решен, но вы можете проголосовать за него здесь.

https://wpdev.uservoice.com/forums/257854-internet-explorer-platform/suggestions/6261318-html-imports

Согласно Википедии, только 10% людей используют Internet Explorer, поэтому, вероятно, проще сказать «этот сайт не поддерживает Internet Explorer», чем дважды писать свой веб-сайт -

https://en.m.wikipedia.org/wiki/Usage_share_of_web_browsers

person user1709076    schedule 23.06.2017