【问题标题】:Function from External file is not defined [JS]外部文件中的函数未定义 [JS]
【发布时间】:2020-09-15 11:29:01
【问题描述】:

您好,我的 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);})();

【问题讨论】:

  • 请添加您要导入的代码段以及导出函数的方式。

标签: javascript function shopify-app external-js


【解决方案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,请动态包含您的文件,并确保在加载文件时调用您的函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    相关资源
    最近更新 更多