加载 aspx 页面后,Javascript 不运行

Javascript does not run after aspx page has been loaded

提问人:Steven Pfeifer 提问时间:12/6/2016 最后编辑:Steven Pfeifer 更新时间:12/6/2016 访问量:594

问:

我在 Visual Studio 2015 Community Edition 中创建了一个网站,从“ASP.NET 空网站”模板开始。最近,我需要添加身份验证功能,因此我创建了一个新的 ASP.NET Web 窗体网站,并将在空网站中创建的所有页面/文件/整个网站移动到这个新的 Web 窗体网站模板中。

一切都运行良好 - 除了用于动态更新我的页面的 javascript 都没有继续工作。以前工作的所有 javascript 函数似乎都被完全忽略了。(我没有更改 HTML 或 Javascript 代码中的任何内容——唯一更改的是我开始使用的 ASP.NET 模板)。即使是像将导航菜单标记为活动这样简单的事情也不起作用,例如:

<script type="text/javascript">
        $(function() {
            // this will get the full URL at the address bar
            var url = window.location.href;

            // passes on every "a" tag
            $(".Navigation a").each(function() {
                // checks if its the same on the address bar
                if (url == (this.href)) {
                    $(this).closest("li").addClass("active");
                }
            });
        });        
    </script>

这在以前可以完美地突出显示活动菜单,但在新的 Web 窗体网站模板中不再有效。我还尝试将它从文件头移动到内容,甚至移动到单独引用的文件,但无济于事。

是否需要将程序集添加到我的新项目中,或者此 ASP.NET Web 窗体模板中是否存在可能阻止我的 javascript 工作的全局设置?任何帮助将不胜感激。我已经在这个问题上坚持了一个多星期了。

编辑:这里有一个更好的例子,看看我是否遗漏了更明显的东西: 这在以前是用来在加载页面并且用户滚动到底部后从数据库动态加载更多信息。当用户点击页面底部时,javascript 仍然可以显示一个消息框,但 c# 代码背后的 Web 方法永远不会被调用......

    var pageIndex = 1;
    var pageCount;
    $(window).scroll(function () {

        // Everytime that the user scroll reaches the bottom of the page, execute function GetRecords
        if ($(window).scrollTop() == $(document).height() - $(window).height()) {
            GetRecords();
        }
    });
    function GetRecords() {
        // Local variable page index begins at 1, and each time the user scrolls to the bottom of the page
        // this number is increased to mark how many times the user has hit the bottom of the page.
        // This later marks how many elements have been loaded from the database.
        pageIndex++;

        // On first scroll, pageCount is null so pageIndex is 2, and function still needs to be executed.
        if (pageIndex == 2 || pageIndex <= pageCount) {

            // Display a loading bar
            $("#loader").show();
            window.alert("loading");
            $.ajax({
                // POST signals a data request
                type: "POST",
                // This directs which function in the c# code behind to use
                url: "databaseLoadDynamic.aspx/GetCustomers",
                // The paramater pageIndex, page number we need to load, to pass to GetCustomers(int pageIndex)
                data: '{pageIndex: ' + pageIndex + '}',
                // Type of data we are sending to the server (i.e. the pageIndex paramater)
                contentType: "application/json; charset=utf-8",
                // Type of data we expect back from the server (to fill into the html ultimately)
                dataType: "json",
                // If all goes smoothly to here, run the function that fills our html table
                success: OnSuccess,
                // On failure, error alert user (aka me so that I know something isn't working)
                failure: function (response) {
                    alert(response.d);
                },
                error: function (response) {
                    alert(response.d);
                }
            });
        }
    }

非常感谢您的帮助!

JavaScript C# asp.net visual-studio-2015 webforms

评论

0赞 Phiter 12/6/2016
你添加了jQuery吗?
0赞 Steven Pfeifer 12/6/2016
我在标题中引用的js文件夹中有jQuery文件...它们也和我以前一样
0赞 Steven Pfeifer 12/6/2016
有没有其他地方需要添加jQuery?
1赞 Dekel 12/6/2016
您是否检查过控制台是否有错误?
1赞 Steven Pfeifer 12/6/2016
@Pete谢谢!!我认为这应该可以解决问题

答: 暂无答案