Как заставить всплывающее окно Mailchimp работать в Chrome - PullRequest
0 голосов
/ 06 февраля 2019

Кажется, у меня возникают проблемы при работе всплывающей функции подписки Mailchimp для работы в Chrome:

Я добавил следующий код на свою страницу index.html в django:

<script type="text/javascript" src="//downloads.mailchimp.com/js/signup-forms/popup/unique-methods/embed.js" data-dojo-config="usePlainJson: true, isDebug: false">
</script>
<script type="text/javascript">window.dojoRequire(["mojo/signup-forms/Loader"], function(L) { L.start({"baseUrl":"mc.us19.list-manage.com","uuid":"4eccd5a19349953c3e023b61d","lid":"9b2e4611ac","uniqueMethods":true}) })
</script>

Кажется, что работает нормально в Opera, Firefox и IE, но в Chrome я получаю следующую ошибку:

Uncaught TypeError: window.dojoRequireне является функцией.

Что мне не хватает, чтобы сделать эту работу в Chrome?

Дополнительная информация:

  • Python 3.6.1
  • Джанго 2.1.3

Ответы [ 2 ]

0 голосов
/ 01 июля 2019

У меня была та же проблема, и я понял, что пошло не так: блокировщики рекламы .

Блокировщики рекламы не позволяют всплывающей форме MailChimp появляться на вашем веб-сайте.Точнее говоря, блокировщик рекламы предотвращает загрузку JS-скрипта Mailchimp, что приводит к ошибке Uncaught TypeError: window.dojoRequire is not a function.

Итог: если пользователь не использует блокировщик рекламы, всплывающая форма будет отображаться очень хорошо.Но если вы хотите убедиться, что ВСЕ пользователи видят всплывающее окно, вместо этого создайте свое собственное настраиваемое всплывающее окно (например, используя Bootstrap Modal) и подпишите пользователя в MailChimp через API MailChimp.

0 голосов
/ 22 июня 2019

Вам нужно будет дождаться загрузки и запуска первого скрипта, который создаст функцию dojoRequire.Второй скрипт использует функцию до того, как он был создан первым.Вы можете использовать setTimeout () = yuck или искать пути в стеке потока для ожидания загрузки страницы, например Дождаться загрузки файлов Javascript

...