Веб-компонент: Dom Exception: это имя уже использовалось - PullRequest
0 голосов
/ 25 апреля 2018

ТЛ: др ;Я не знаю, как исправить ошибку ниже на сайте здесь :

You will need credentials:
un: stackoverflowuserj23jf4@mailinator.com
pass: testingStackOverflow123

enter image description here

Подробнее: я пытаюсь условно включить веб-компонент на странице, например так:

<script>
  document.addEventListener("DOMContentLoaded", function(event) {
  if (document.querySelector('simple-fred')) {
    var script = document.createElement('script');
    script.src = 'https://embedint.crossroads.net/fred/js/simplefred.min.js';
    document.head.appendChild(script)
  }
});
</script>

Включение сценария условно вместо статически нарушенного кода ,Приведенный выше скрипт загружался следующим образом: <script src="https://embedint.crossroads.net/fred/js/simplefred.min.js"></script>, который работал

Затем я включаю элемент на страницу:

<simple-fred data-form-name="buildingblocksformarriage" data-redirect-url="/care/weddings/building-blocks-for-marriage/signup/confirmation">&nbsp;</simple-fred>

Это прекрасно работает локально и на plunker.

Чтобы запустить его на plnkr, вам нужно отключить блокировку CORS для Chrome, команда:

TASKKILL /F /IM chrome.exe
start chrome.exe --args --disable-web-security --user-data-dir
pause

Это все хорошо ихорошо, но когда я запускаю этот код в сочетании с другим кодом, он терпит неудачу.Я получаю следующую ошибку (та же ошибка, браузеры сообщают об этом по-разному):

Chrome:

Uncaught DOMException: Не удалось выполнить 'define' для 'CustomElementRegistry': это имя ужеиспользовался с этим реестром в Function.value (https://embedint.crossroads.net/fred/js/simplefred.min.js:5:383105)

Mozilla:

Ошибка: пользовательский элемент с именем slim-repeat уже определен.

Эта ошибка, по-видимому, вызвана тем, что два третьих лица пытаются создать один и тот же пользовательский компонент, насколько я могу судить, судя по этому вопросу, у меня есть вознаграждение

В данный момент я в растерянности. Среда int, которая выдает ошибку, находится здесь:

https://int.crossroads.net/care/weddings/building-blocks-for-marriage/signup

Вам может потребоваться логин, я сделал его, чтобы он был быстрее(можно поделиться):

stackoverflowuserj23jf4@mailinator.com
testingStackOverflow123

Код с открытым исходным кодом и находится здесь (я не думаю, что это поможет, просто для полноты): https://github.com/crdschurch/crds-fred/blob/development/CrdsFred/Views/Form/Index.cshtml

Как мне это исправить?

Или, по крайней мере, Каковы возможные причины ? Я будубросьте на это, по крайней мере, 100 баллов, чтобы вознаградить принятый ответ.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Я являюсь автором этой библиотеки и хотел бы помочь.Я разверну оперативное исправление для этой проблемы.В конечном итоге не выполняется весь сценарий, если другой экземпляр Slim уже инициализирован.

0 голосов
/ 25 апреля 2018

похоже, что есть модуль узла с именем slim-js, и он создает элемент с названием slim-repeat в строках 1057 и / или 1146 файла Slim.js (см. Скриншот).Может быть, вам просто нужно выбрать другое имя?

slim-repeat

...