【问题标题】:Jquery script in master page not working in Internet Explorer母版页中的 Jquery 脚本在 Internet Explorer 中不起作用
【发布时间】:2012-08-18 15:46:30
【问题描述】:

我在母版页中有这个脚本(它在菜单元素悬停时显示一个面板)

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>

<script type="text/javascript">
     $(document).ready(function() {
         $('#<%= menu1_lbl.ClientID %>').hover(function() {
             $('#<%= sub_menu1_lbl.ClientID %>').slideDown(200);
         },
         function() {
             $('#<%= sub_menu1_lbl.ClientID %>').hide();
         });

         $('#<%= sub_menu1_lbl.ClientID %>').hover(function() {
             $('#<%= sub_menu1_lbl.ClientID %>').show();
             $('#<%= menu1_lbl.ClientID %>').addClass("menuhover");
         },
         function() {
             $('#<%= sub_menu1_lbl.ClientID %>').hide();
             $('#<%= menu1_lbl.ClientID %>').removeClass("menuhover");
         });
     }); 
</script>

它在 Chrome 和 Firefox 上运行良好,但在 IE 中无法运行。关于我应该怎么做才能让它发挥作用的任何想法?

提前致谢。

更新:这是完整的客户端生成代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Smart Finance </title>
    <style type="text/css">

    </style>
</head>
<body>
    <form name="aspnetForm" method="post" action="ie_not_compatible.aspx" id="aspnetForm">
    <div>
        <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
        <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
        <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTY1NDU2MTA1Mg9kFgJmD2QWBAIBD2QWAgIBDxUHFi9GaW5hbmNhL2ltYWdlcy9iZy5wbmcZL0ZpbmFuY2EvaW1hZ2VzL2ltZzAzLmpwZxYvRmluYW5jYS9pbWFnZXMvYmcucG5nGS9GaW5hbmNhL2ltYWdlcy9pbWcwMi5qcGcZL0ZpbmFuY2EvaW1hZ2VzL2ltZzAyLmpwZxkvRmluYW5jYS9pbWFnZXMvaW1nMDIuanBnGS9GaW5hbmNhL2ltYWdlcy9pbWcwMi5qcGdkAgMPZBYCAgkPZBYCAgEPDxYCHgRUZXh0BQVlbmRyaWRkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYDBRhjdGwwMCRMb2dpblN0YXR1czEkY3RsMDEFGGN0bDAwJExvZ2luU3RhdHVzMSRjdGwwMwUMY3RsMDAkY29uZmlnwdDc6GaGSg1K9roW+pf9g9bwZ08=" />
    </div>
    <script type="text/javascript">
//<![CDATA[
        var theForm = document.forms['aspnetForm'];
        if (!theForm) {
            theForm = document.aspnetForm;
        }
        function __doPostBack(eventTarget, eventArgument) {
            if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
                theForm.__EVENTTARGET.value = eventTarget;
                theForm.__EVENTARGUMENT.value = eventArgument;
                theForm.submit();
            }
        }
//]]>
    </script>
    <div>
        <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwKDjNy/AwLh8tHdBgL0/brqCByGAqyFdaUy3EVtuUCi/i44T7vY" />
    </div>
    <div id="menu" style="top: 12px; width: 1250px; position: relative; float: left;">
        <ul>
            <li><a href="Home.aspx" id="ctl00_Homelbl">Home</a></li>
            <li id="faturatli"><a href="Default.aspx" id="ctl00_menu1_lbl">Default</a> </li>
        </ul>
    </div>
    <div id="ctl00_sub_menu1_lbl" style="display: none; top: 137px; padding: 15px 15px 15px 15px;
        box-shadow: 0px 5px 15px rgba(0, 0, 0, .5); z-index: 99999; left: 155px; position: absolute;
        float: left; width: 300px; background: #FFFFFF;">
        Submenu panel
    </div>
    <div id="logoutcontainer" style="top: 113px; right: 50px; position: absolute;">
        <div id="ctl00_Panel1" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ctl00_config')">
            <span id="ctl00_userloggedin" style="color: #ADC9C9; font-size: small; font-weight: 700;">
                endri</span> &nbsp;<a id="ctl00_LoginStatus1" href="javascript:__doPostBack('ctl00$LoginStatus1$ctl00','')"
                    style="color: #CCFFFF; font-size: small; font-weight: 700;">Logout</a>
            <input type="image" name="ctl00$config" id="ctl00_config" src="images/config.png"
                style="height: 20px; border-width: 0px;" />
        </div>
    </div>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.js"></script>
    <script defer="defer" type="text/javascript">
        $(document).ready(function () {
            "use strict";
            $('#ctl00_menu1_lbl').hover(function () {
                $('#ctl00_sub_menu1_lbl').slideDown(200);
            }, function () {
                $('#ctl00_sub_menu1_lbl').hide();
            });
            $('#ctl00_sub_menu1_lbl').hover(function () {
                $('#ctl00_sub_menu1_lbl').show();
                $('#ctl00_menu1_lbl').addClass("menuhover");
            }, function () {
                $('#ctl00_sub_menu1_lbl').hide();
                $('#ctl00_menu1_lbl').removeClass("menuhover");
            });
        });
    </script>
    ​
    <div id="ContentDiv" style="float: left; position: relative; margin: 50px 50px 50px 50px;
        text-align: left; top: 21px; left: 0px;">
        <span class="style3">Not working on internet explorer.</span>
    </div>
    <script src="/finance/WebResource.axd?d=lLeg7eZU8UNEVWRCMptUog2&amp;t=633750586290014532"
        type="text/javascript"></script>
    </form>
</body>
</html>

【问题讨论】:

  • 您是否使用了 IE 的检查模式 - 它显示了什么?有什么错误吗?
  • 它是 Internet Explorer 7.0,它显示“预期对象”
  • 向我们展示输出,而不是原始来源。在调试客户端问题时,我们并不关心服务器端发生了什么。
  • 它根本不起作用,好像我没有写任何脚本一样。你需要什么样的输出?
  • 它自动生成了这个: 我没有知道它是什么。

标签: c# jquery asp.net internet-explorer


【解决方案1】:

嘿 这个错误通常是在没有正确加载 jquery 库时出现的。 尝试以这种方式加载它

<script type="text/javascript" src='<%=Page.ResolveUrl("http://code.jquery.com/jquery-1.7.2.min.js")%>'></script>

【讨论】:

  • 不,我试过了,但还是不行。我认为这不是 jquery 问题,因为我只是尝试输入脚本 alert("1");在任何其他行之前,并且警告框没有出现在 IE 中。
  • 脚本工作的唯一地方是标题,但是一旦我将上面的脚本放在标题中,我就会收到错误“无法修改控件集合,因为控件包含代码块(即 )。”
  • 将代码块替换为
  • 即使在 Chrome 上也无法使用。我已经有 Page.Header.DataBind();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 2019-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-09
相关资源
最近更新 更多