#javascript #function #shopify-app #external-js
#javascript #функция #Shopify-приложение #внешний-js
Вопрос:
Здравствуйте, у меня проблема с функцией JavaScript.
У меня есть 3 внешних JS-файла, которые включены в мой JS-файл таким образом:
var badgeJs = document.createElement('script');
badgeJs.type = 'text/javascript';
badgeJs.src = 'url'
document.head.appendChild(badgeJs);
Итак, вот проблема, мне нужно использовать 3 функции, но иногда я получал ошибку
Refference error: functionName is not defined
, после этого я обновляю страницу, и первая функция работает, а вторая — нет, и каждый раз при обновлении некоторые функции не определены.
Я не знаю, в чем проблема и почему это происходит? Любой совет будет оценен.
Я не знаю, поможет ли это, но JS-код предназначен для shopify-app
Как я вызываю функции
var content = 'function1(param);function2(param1, param2, param3, [10, 25]);function3(param1, param2);';
(function() { var script = document.createElement('script'); script.text = content; var body = document.querySelector('body'); body.append(script);})();
Комментарии:
1. Пожалуйста, добавьте фрагмент кода, который вы импортируете, и как вы экспортируете функции.
Ответ №1:
Ваши включения в файл выполняются одновременно с попыткой вызова ваших функций. Поскольку для включения файла требуется время для загрузки ваших файлов, вы вызываете функции до того, как они были загружены. Вы должны вручную добавить свои скрипты в HTML:
<script type="text/javascript" src="/to/your/file.js">
А затем запустите свою функцию, когда DOM будет загружен:
document.addEventListener("DOMContentLoaded", function(event) {
// Your code to run since DOM is loaded and ready
});
Если вы не можете изменить HTML, то включите свои файлы динамически и обязательно вызывайте свои функции при загрузке файлов.