0

我在加载所有 javascript 文件的母版页上有一个 ScriptManager。但是,我发现我的一个文件变得太大,所以我决定将它分解为单独的文件,按功能问题分组。但是,这些文件似乎没有被加载。当我引用在新的 javascript 文件中声明的函数时,我得到一个空引用错误。

这是一个示例:我有 SignOff.js 和 SignOffTools.js。两者都在同一个目录中。SignOff.js 是原始的大文件。SignOffTools.js 是新文件。

我在母版页中有以下几行。

        <asp:ScriptReference Path="~/Tabs/SignOff.js" />
        <asp:ScriptReference Path="~/Tabs/SignOffTools.js" />

SignOff.js 中的所有内容都可以正常加载。但是,如果我在我的 ascx 文件中对 SignOffTools.js 函数进行任何引用,比如在 onclick 事件中,我会得到一个空引用异常。

在使用 Firebug 进行进一步调查后,看起来 SignOffTools.js 没有被加载。但我不知道为什么。

我完全不知所措。删除对旧版 SignOff.js 的引用会阻止它被加载。但是添加对任何新文件的引用不会导致它们被加载。我添加了对 ascx(选项卡)、aspx(页面)和母版页级别的 src 引用,但没有任何影响。我什至将 javascript 直接嵌入到选项卡中,但没有任何成功。但是,只要我将 javascript 复制到旧的 SignOff.js 文件中,一切都会正常工作。由于我看不出这种行为没有任何逻辑,我只能得出结论,这是某种恶毒精神的产物。我想下一步是让我用大蒜环我的电脑,然后用木桩穿过主板。

4

1 回答 1

0

Turns out this was caused by a missing curly brace } in one of the files. This caused all files referenced after that point to have their code become unparseable. Unfortunately Visual Studio didn't alert me to the error. It was discovered by a friend of mine using Resharper.

于 2013-05-02T14:30:37.380 回答