Функция из внешнего файла не определена [JS]

#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, то включите свои файлы динамически и обязательно вызывайте свои функции при загрузке файлов.