Javascript: 动态添加的脚本在另一个脚本中找不到以前定义的函数

Javascript: Dynamically added script can't find previously defined function in another script

我遇到了一个看起来非常简单的问题,但我真的找不到解决方案:

在我的代码中,我在 header:

中加载了一个脚本
<script type="text/javascript" src="../js/viewdoc/index.js?v=1.33"></script>

在那个特定的脚本中,我声明了函数:

function addResizeListener(listener){
    //Attach the back button function to window resize event
    if(window.attachEvent) {
        window.attachEvent('onresize', listener); //Old browsers
    }
    else if(window.addEventListener) {
        window.addEventListener('resize', listener, true); //New browsers
    }
}

和:

function removeResizeListener(listener){
    //Remove the listener for the back button
    if(window.detachEvent) {
        window.detachEvent('onresize', listener);
    }
    else if(window.removeEventListener) {
        window.removeEventListener('resize', listener, true);
    }
}

然后我将此文件加载到具有 loaderdoc id 的元素中:

if ($('#loaderdoc').is(':empty')){
    $('#loaderdoc').load('../viewdoc/welcome.php');
}

我使用函数 addResizeListener 将函数绑定到 window 调整大小事件,这非常有效,index.js 脚本结束。

在加载文件的末尾welcome.php我添加了行

<script src="../js/viewdoc/welcome.js"></script>

welcome.js 是一个使用函数 removeResizeListener 和 addResizeListener 的脚本,但我收到错误: 未捕获的 ReferenceError:未定义 addResizeListener

这是为什么?函数不是在脚本添加到文档之前定义和加载的吗?

抱歉,如果之前有人回答过这个问题,我只是找不到它,或者我还不知道他搜索它的正确方法。

感谢阅读!

jQuery 的 .load() 是异步的。因此 welcome.js 将在定义函数之前执行。你必须使用回调。参见 https://api.jquery.com/load/