Angular - пользовательские элементы не работают в Firefox, Microsoft Edge и Internet Explorer - PullRequest
0 голосов
/ 13 мая 2018

Я попробовал это Angular Elements Demo

Я скачал, установил и собрал это демо на локальном компьютере.

Затем использовал следующий код:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Angular Elements Demo</title>
</head>
<body>

  <hello-world name="Anna"></hello-world>

  <script src="dist/main.js"></script>
  <script>
      const helloCp = document.querySelector('hello-world');
      helloCp.addEventListener('hi', (data) => {
          console.log(data.detail);
      });
      setTimeout(() => {
        helloCp.setAttribute('name', 'Marc');
      }, 1000);
  </script>

</body>
</html>

Затем я попытался Mozilla Firefox, но получил следующую ошибку:

"ReferenceError: customElements is not defined"

С другой стороны, я попытался Google Chrome и !!!это работает правильно !!!

Может быть, мне нужно включить какой-нибудь файл Javascript, например polyfill?Я попробовал некоторые из них, рекомендованные в Интернете, но безуспешно.

Это также не работало на Microsoft Edge и Internet Explorer.

Есть ли способ запустить код на Firefox безнастроить его по умолчанию?

Я имею в виду, в Firefox: about:config

dom.webcomponents.customelements.enabled: true
dom.webcomponents.shadowdom.enabled: true

Я попытался добавить следующий файл Javascript:https://github.com/webcomponents/webcomponentsjs/blob/v1/webcomponents-lite.js

как рекомендовано здесь:https://www.webcomponents.org/polyfills

но успеха не было

Есть идеи, как это решить?

Спасибо за помощь!

Ответы [ 3 ]

0 голосов
/ 16 августа 2018

Я получил проект Custom Elements для работы в других браузерах, удалив encapsulation: ViewEncapsulation.Native

0 голосов
/ 03 февраля 2019

Угловые пользовательские элементы не поддерживают IE.Вот обходной путь для настройки загрузчика приложения Angular 4+ и поддержки его с IE.

https://hongbinhb.blogspot.com/2019/02/how-to-deploy-two-or-more-angular-6.html

0 голосов
/ 13 мая 2018

Пользовательские элементы - это функция веб-платформы, которая в настоящее время поддерживается в Chrome, Opera и Safari и доступна в других браузерах через полифиллы (см. Поддержка браузера).

Итак, вам следует добавить polyfills для работы с Firefox, Edge ...

Поддержка браузером пользовательских элементов

Примечание:Пользовательские элементы поддерживаются по умолчанию в Chrome и Opera.Firefox очень близок;в настоящее время они доступны, если вы установите параметры dom.webcomponents.enabled и dom.webcomponents.customelements.enabled в true .Реализация Firefox планируется включить по умолчанию в версии 60/61 .Пока Safari поддерживает только автономные пользовательские элементы, а Edge также работает над реализацией.

Официальные документы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...