1

vs2008 で asp.net 3.5 を使用し、vs2010 で 4.0 を使用する 2 つの個別の Web アプリケーションでは、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;
}

メニューはマスター ページにあり、ページに toolscriptmanager があります。

次のコードは、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

これを修正する方法を見つけました。

どちらか

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

起動スクリプトで

または body タグを次のようにします

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

その後、Androidで動作します。他のiPhoneなどではテストしていません。

(このダミー スクリプトを追加する従来の方法もいくつか試しましたが、うまくいきませんでした。)

于 2018-03-19T02:13:56.030 に答える