1

在 2 个单独的 Web 应用程序中,一个使用带有 vs2008 的 asp.net 3.5 和带有 vs2010 的 4.0,asp.net 菜单的子菜单项仅在 android 浏览器上消失。当点击主菜单项时,孩子们会闪烁一秒钟然后消失。

修改后的菜单如下:

<asp:Menu ID="MainMenuEmp" runat="server" CssClass="menuASP" Orientation="Horizontal" DynamicHorizontalOffset="0" 
                        StaticDisplayLevels="1" StaticEnableDefaultPopOutImage="false" DynamicVerticalOffset="1" visible="false" 
                        > 
                       <StaticMenuitemStyle CssClass="menuitemASPStatic" /> 
                       <StaticHoverStyle    CssClass="menuASPStaticHover" />
                       <StaticSelectedStyle CssClass="menuASPStaticHover" /> 
                       <DynamicMenuStyle CssClass="menuASPDynamicMenuStyle" />
                       <DynamicMenuitemStyle CssClass="menuitemASPDynamic" /> 
                       <DynamicHoverStyle CssClass="menuASPDynamicHover" />
                       <DynamicSelectedStyle CssClass="menuASPDynamicHover" /> 
                       <Items>
                           <asp:MenuItem Text="HISTORY" Value="@" navigateurl="~/clientpages/jobhistory.aspx" />
                            <asp:MenuItem Text="NEW ORDER" Value="@" navigateurl="~/clientpages/newjob.aspx"  />
                            <asp:MenuItem Text="CLIENT INFO" Value="@" navigateurl="~/clientpages/clientinfo.aspx"  />
                            <asp:MenuItem Text="MGMT" Value="@"  Selectable="false"  >
                                <asp:MenuItem Text="Inspections" Value="@" navigateurl="~/clientpages/MgrInspection.aspx" />
                                <asp:MenuItem Text="Tasks" Value="@" navigateurl="~/clientpages/MgrInspectionStatus.aspx"/>
                                <asp:MenuItem Text="Last Vehicle Inspection" Value="@" navigateurl="~/clientpages/MgrInspectionVehicle.aspx"/>
                            </asp:MenuItem >
                            <asp:MenuItem Text="JOB MGMT" Value="@" navigateurl="~/clientpages/jobdailyview.aspx"/>
                       </Items>
                    </asp:Menu>

部分 css 如下:(需要 z-index 才能让子菜单显示在其他浏览器上)。

.menuASPDynamicMenuStyle
{
    z-index: 999; /*padding: 4px 0 3px 0;*/
    padding: 0;
    margin-top: 1px; 
    background-color: #F8F8F8;
}

菜单在母版页上,工具脚本管理器在页面上。

以下代码在 masterpage 的 init 事件中:

If Request.ServerVariables("http_user_agent").IndexOf("Safari", StringComparison.CurrentCultureIgnoreCase) <> -1 Then
                Page.ClientTarget = "uplevel"
            End If

这对于让子菜单也显示在其他浏览器上是必要的。我试过了:

page.clienttarget = "uplevel"

没有条件,但是,这不起作用。

我也尝试添加一个 android 浏览器文件,但是,这不起作用。

我已经在网上搜索了几天。有几个类似的问题,但没有答案。有没有人有同样的问题?该菜单在 chrome、ff、safari、ipad 中运行良好,但不适用于 android 移动设备和 android 平板电脑。

4

3 回答 3

0

Android 上没有悬停,但如果我按住父菜单,我的 asp 菜单可以工作。可悲的是,当我按住它时,我也得到了浏览器菜单。您必须设计一个菜单,只需单击一下即可打开子项。这不能用 asp 菜单完成。

于 2014-05-13T16:26:36.203 回答
0

菜单没有消失,但页面正在回发..

只需将 navigateUrl 属性设置为 'javascript:return false'

于 2017-04-16T17:43:21.647 回答
0

我找到了解决这个问题的方法。

要么做

document.body.setAttribute('onclick', 'setTimeout(function () { }, 0);');

在启动脚本中

或者让body标签看起来像这样

<body onclick="setTimeout(function () { }, 0);">

然后它可以在Android上运行。我还没有在其他 iPhone 上测试过。

(我也尝试了一些更传统的方法来添加这个虚拟脚本,但没有奏效。)

于 2018-03-19T02:13:56.030 回答