0

Java で記述され、このスライド メニューを統合しようとしている Tomcat でホストされている既存のモバイル サイトがあります。

https://github.com/tegansnyder/JQuery-Mobile-Slide-Menu

ただし、Samsung Galaxy S3 ブラウザーに固有のように思われる非常に奇妙な問題が発生しています。Chrome や Firefox では同じ問題が発生していません。

スライダー メニューのメニュー リンクの 1 つをクリックすると、指定した URL にリダイレクトされますが、# 記号が追加されます。例えば

domain.mobi/#/help.jsp?helpsource=index.jsp

あるべきなのに

domain.mobi/help.jsp?helpsource=index.jsp

これにより、そのページのスライダー メニューが機能しなくなるため、実質的にページが壊れます。

何か案は?

これが私のindex.jspのコードです

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" 
                   "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<c:set var="locale" value="en"/>
<c:if test="${not empty param.locale}">
  <c:set var="locale" value="${param.locale}"/>
</c:if>
<fmt:setLocale value="${locale}"/>
<fmt:setBundle basename="chale"/>
<%@taglib uri="/WEB-INF/tld/chale.tld" prefix="chale" %>

<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320"/>
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta http-equiv="cleartype" content="on">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">

 <link href="css/themes/jqmfb.min.css" rel="stylesheet" type="text/css">
 <link href="css/chale_style.css" rel="stylesheet" type="text/css">
 <link href="css/jquery.mobile.structure.min.css" rel="stylesheet" type="text/css">

<!--Include JQM and JQ-->

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js">    </script>
 <script src="js/jquery.animate-enhanced.min.js"></script>

        <!--JQM globals you can edit or remove file entirely... note it needs to be loaded     before jquerymobile js -->
<script src="js/jqm.globals.js"></script>

<script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script>

<!--JQM SlideMenu-->
<link rel="stylesheet" href="css/jqm.slidemenu.css" />
<script src="js/jqm.slidemenu.js"></script>  
<title><fmt:message key="index.pagetitle"/></title>
</head>
<body>
<c:set var="pageVal" value="0"/>
<c:if test="${not empty param.page}">
<c:set var="pageVal" value="${param.page}"/> 
</c:if>



<div id="slidemenu">

    <div id="profile">

        <div class="profile_info"><strong>Chale</strong></div>
    </div>

    <h3>MENU</h3>

    <ul>
        <c:url var="finder" value="m/browse.jsp"/>
        <li><a href="${finder}"><img src="../img/smico4.png"><fmt:message key="index.optionflirtfinder"/></a></li>

        <c:url var="fav" value="m/favourites.jsp"/>
        <li><a href="${fav}"><img src="../img/smico4.png"><fmt:message key="general.favourites"/></a></li>


        <c:url var="message" value="m/messaging.jsp"><c:param name="messagesource" value="../index.jsp"/></c:url>
        <li><a href="${message}"><img src="../img/smico4.png"><fmt:message key="general.messages"><fmt:param value="${unreadMessages}"/></fmt:message></a></li>

        <c:url var="chat" value="chat/checkdetailsservlet"/>
        <li><a href="${chat}"><img src="../img/smico4.png"><fmt:message key="index.optionchatcentral"/></a></li>

        <c:url var="prof" value="m/profile.jsp"/>
        <li><a href="${prof}"><img src="../img/smico4.png"><fmt:message key="index.optionmyprofile"/></a></li>

        <c:url var="help" value="help.jsp"><c:param name="helpsource" value="index.jsp"/></c:url>
        <li><a href="${help}"><img src="../img/smico4.png"><fmt:message key="general.helpcentre"/></a></li>

    </ul>


</div>

<div data-role="page" id="main_page" data-theme="a">

    <div data-role="header" data-position="fixed" data-tap-toggle="false" data-   update-page-padding="false">
        <a href="@" data-slidemenu="#slidemenu" data-slideopen="false" data-icon="smico" data-corners="false" data-iconpos="notext">Menu</a>
        <h1>Chale</h1>
    </div>
4

1 に答える 1

1

あなたが直面しているものを手に入れました。<a>タグは jquery mobile によってインターセプトされ、ページを直接変更する代わりに、AJAX を使用して HTML を取得したり、ページをナビゲートしたりします。

ページをナビゲートするために、ハッシュ (#) を使用して URL を生成します。
参照: http://jquerymobile.com/demos/1.2.0/docs/api/methods.html
キーワードを検索: ハッシュ

domain.mobi/#/help.jsp?helpsource=index.jsp

この問題を解決するには、url に data-ajax="false" を追加します。

<a href="${finder}" data-ajax="false"><img src="../img/smico4.png"><fmt:message key="index.optionflirtfinder"/></a>

リンクが別のサイトまたはドメインにリンクしている場合は、追加する必要がrel="external"あります。
参照: http://jquerymobile.com/demos/1.2.0-alpha.1/docs/pages/page-links.html

于 2013-02-28T17:54:36.263 に答える