获取'event.returnValue已被弃用'的空白网页警告

时间:2014-02-21 14:35:28

标签: javascript jquery asp.net html5

我知道之前已经问过这个问题,以前它曾经是一个bug等等,但我使用jQuery v1.11.0应该修复它。我遇到的问题是,当我加载页面时,假设有效幻灯片(作为介绍)然后会出现一个按钮,让您进入主页面。在我的主页面中,我有一个flot实时图表,它放在一个名为“占位符”的div中。现在一切都运行得很好,但是一旦我尝试在任何其他div中嵌套“占位符”div,我就会得到event.returnValue is deprecated警告和一个空白屏幕。所以基本上当我现在加载我的屏幕时,我只得到一个空白的白页,没有任何介绍。这是唯一执行的代码:

$(window).load(function () {
        //Display Intro
            $("#main").hide();
            $("#blocker").hide();
            $("#blocker").fadeIn(2000);//make my intro sexy
            $("#btnEnter").show();

    });//when this line is hit, it then throws that warning and I get a blank screen

这是我的全部代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebSockets.aspx.cs" Inherits="WebSockets_and_Multi_Threading.WebSockets" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Real Time Display</title>

<!-- Meta tag  (for safari) -->
<meta content="width=device-width, minimum-scale=1, maximum-scale=1" name="viewport" />

<!-- Javascript -->
<script src="flot/jquery.js" type="text/javascript"></script>
<!-- <script src="jQuery-Mobile/jquery.mobile-1.4.1.js"></script> -->
<script src="flot/jquery.flot.js" type="text/javascript"></script>
<script src="flot/jquery.flot.crosshair.js" type="text/javascript"></script>
<script src="flot/jquery.flot.resize.js" type="text/javascript"></script>
<script src="flot/jquery.flot.threshold.js" type="text/javascript"></script>

<!-- CSS -->
<link rel="stylesheet" type="text/css" href="CSS/Intro.css" />
<link href="jQuery-Mobile/jquery.mobile-1.4.1.css" rel="stylesheet" />
<script type="text/javascript">

    $(window).load(function () {
        //Display Intro
            $("#main").hide();
            $("#blocker").hide();
            $("#blocker").fadeIn(2000);
            $("#btnEnter").show();
    });

    function loadMainMenu() {
        debugger;
        $("#blocker").hide();
        $("#btnEnter").hide();
        $("#main").show();
    }
</script>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager" runat="server" EnablePageMethods="true" ScriptMode="Release" />

    <!-- main menu -->
    <div id="main">
        <h1>ITPS Real Time Monitoring</h1>

        <!-- Div for flot graph -->
        <div id="chart-container">
            <div id="placeholder" style="width: 600px; height: 220px;" />
            <div id="placeholder2"></div>
        </div>
    </div>


    <!-- Intro div -->
    <div id="blocker">
        <img id="introImage" src="Images/Untitled.png" alt="some_text" />
        <input id="btnEnter" type="button" value="Enter" onclick="loadMainMenu();" />
    </div>

    <asp:Label ID="LabelError" runat="server" />

</form>

修改 在$(“#btnEnter”)。show()被调用之后,控制台然后进入这一小段jquery代码(来自库):

// Triggered event must either 1) be non-exclusive and have no namespace, or
            // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
            if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) {

                event.data = handleObj.data;
                event.handleObj = handleObj;

                ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
                        .apply( matched.elem, args );

                if ( ret !== undefined ) {
                    event.result = ret;
                    if ( ret === false ) {
                        event.preventDefault();
                        event.stopPropagation();
                    }
                }

并且在控制台中(调试时)ret似乎是'undefined'。

1 个答案:

答案 0 :(得分:2)

我找到了。你错过了一个结束div标签:

<div id="placeholder" style="width: 600px; height: 220px;" />

这应该是:

<div id="placeholder" style="width: 600px; height: 220px;"></div>

您不能使用自动关闭div标签。这就是造成错误的原因。

请在此处查看:http://jsfiddle.net/fkXY9/1/

使用Javascript:

$(document).ready(function () {
    $("#main").hide();
    $("#blocker").hide();
});
$(window).load(function () {
    $("#blocker").fadeIn(2000);
});

function loadMainMenu() {
    debugger;
    $("#blocker").hide();
    $("#btnEnter").hide();
    $("#main").show();
}

HTML:

<form id="form1" runat="server">
    <div id="main">
        <h1>ITPS Real Time Monitoring</h1>
        <!-- Div for flot graph -->
        <div id="chart-container">
            <div id="placeholder" style="width: 600px; height: 220px;"></div>
            <div id="placeholder2"></div>
        </div>
    </div>
    <div id="blocker">
        <img id="introImage" src="Images/Untitled.png" alt="some_text" />
        <input id="btnEnter" type="button" value="Enter" onclick="loadMainMenu();" />
    </div>
</form>

我还将隐藏事件移动到$(document).ready()函数。当它在window.load()函数中时,它会短暂显示然后隐藏,这就固定了。