未捕获的ReferenceError: Main未定义javascript

Uncaught ReferenceError: Main is not defined javascript

本文关键字:Main 未定义 javascript ReferenceError      更新时间:2023-09-26

我有一点麻烦从一个Javascript文件从另一个调用函数。

我的search.js文件使用的调用是

Main.UserRoleTeam({
    teamdropdown: $("#Team"),
    teamroledropdown: $("#TeamRole"),
    memoryload: true,
    load: function (options) {
    }
});

另一个文件是Main.js

function UserRoleTeam(options) {
    ...
}

在dev中,这在test中工作,它不工作。

文件夹'文件结构是完全相同的,我已经检查了所有这些。

我还使用了diff工具来查看解决方案'文件夹'文件差异,没有任何内容。

在我的aspx页面中,文件被这样调用。

<script src="../Static/Search.js" type="text/javascript"></script>
<script src="../Static/Main.js"type="text/javascript"></script>

我检查了这里的其他答案,并尝试了各种解决方案,其中大多数都指出调用文件的顺序应该如上所述。

================================================

编辑1

查看页面源代码,我应该期望返回的值在源代码中,

<div class="user text-right">
    <b>User:</b><span id="UserName">adrian wright</span><br />
    <b>Team:</b><select name="Team" id="Team">
        <option value="4" data-roles="Agent|AGENT">CPS</option>
        <option value="5" data-roles="Manufacturer|MANUFACTURER">TEJ</option>
        <option value="3" data-roles="Supplier|SUPPLIER">SHA</option>
    </select>
   <br />
   <b>Role:</b><select name="TeamRole" id="TeamRole">
   </select>
</div>

但是选择列表没有填充值。

还是

,代码在dev和test中是完全一样的,但是dev工作,test不工作。

您的函数当前是window.UserRoleTeam,而不是window.Main.UserRoleTeam

要纠正这个错误,请将函数声明更改为:

var Main = Main || {};
Main.UserRoleTeam(options) {
    ...
}

其次,确保在调用之前声明了this。要做到这一点,你需要重新排序你的javascript引用:

<script src="../Static/Main.js"type="text/javascript"></script>
<script src="../Static/Search.js" type="text/javascript"></script>

我不确定为什么它在本地工作,但它不应该是,除非你在开发中有其他代码支持它。


仅供参考-将函数添加到名为Main.js的文件中不会使该函数存在于Main对象下。