【问题标题】:How to create multi-page application using html and Jquery如何使用 html 和 Jquery 创建多页应用程序
【发布时间】:2013-01-07 19:53:13
【问题描述】:

我正在为 iphone 开发本机应用程序。此应用程序从 XML 读取内容。我有许多从 XML 读取内容的链接和按钮。 一切都很好,除了后退按钮。因为,我创建了一个单页应用程序,因此后退按钮不起作用。我想将此应用程序转换为多页。但我不确定使用 jquery、XML 和 html 的最佳方法是什么。我已阅读 xml 并将所有值放入数组并处理数组。

我正在阅读 XML 使用

<html>
    <head>
        <script>
            $(document).ready(function() {
                var meetingName = [];
                var buildingName = [];
                var floorInfo = [];
                var officeContact = [];
                var roomEmail = [];
                var capacity = [];
                var phoneNotes = [];
                var pdfName = [];
                var pdfRoomName=[];
                var myHTMLOutput = '';
                var indexVal='';
                $('#menu').hide();
                var location='';

                // Open the IMRM.xml file
                $.get("xml/IMRM.xml",{},function(xml) {

                    // Build an HTML string
                    // Run the function for each Room tag in the XML file
                    $('Room',xml).each(function(i) {
                        meetingName[i] = $(this).find("meetingRoomName").text();
                        buildingName[i] = $(this).find("buildingName").text();
                        floorInfo[i] = $(this).find("floorInfo").text();
                        officeContact[i] = $(this).find("officeContact").text();
                        roomEmail[i] = $(this).find("roomEmail").text();
                        capacity[i] = $(this).find("capacity").text();
                        phoneNotes[i] = $(this).find("phoneNotes").text();
                        pdfName[i] = $(this).find("pdfName").text();
                        pdfRoomName[i] = $(this).find("pdfRoomName").text();
                    }
                );
                document.getElementById("title").innerHTML = "Muncipal Building";               

                //Capture button click and show information for each room
                $(".left").click(function() {
                    buttonClick($(this).attr("data-value"));
                });
            }
        </script>
    </head>
    <body >
        <div id="wrapper" class="imr">    
            <div data-role="page" data-theme="bu" id="imr">      
                <div data-role="header" data-theme="bk" class="ui-header" role="banner">
                    <a href="#" data-rel="back" data-add-back-btn="true"  data-back-btn-text="Back" data-theme="bk" class="header-btn-bk back-btn" id="back"></a>
                    <h1 class="font-narrow font-bold imr-header-title" id= "title"></h1>
                    <a href= "Terms_of_use.html" data-theme="bk" class="header-btn-bk info-btn"></a>
                </div>          

                <div data-role="content" data-theme="bu" class="content">  
                    <div id="information" >
                        <!-- <a class = "policy" href= "Terms_of_use.html" style="display:inline"> Terms of Use </a> -->
                    </div>            

                    <div id= "main" style="display:none">
                        <div id= "inputArea">
                            <input type="text" id ="roomInput" /> <input id= "cancel" type="button" value ="Cancel" disabled/>
                            <ul id= "auto_suggest" data-role="listview" data-insert="true"> </ul>
                        </div>
                        <div class="floor-btn">    
                            <a href= "#" data-role="button" class="left" data-ajax= "false" data-value="1"> 1 <span class="floor-btn-bgtxt"></span></a>
                            <a href= "#" data-role="button" class="right" data-ajax= "false" data-value="2"> 2 <span class="floor-btn-bgtxt"></span></a>
                            <a href= "#" data-role="button"class="left" data-ajax= "false" data-value="3"> 3 <span class="floor-btn-bgtxt"></span></a>
                            <a href= "#" data-role="button" class="right" data-ajax= "false" data-value="4"> 4 <span class="floor-btn-bgtxt"></span></a>
                            <a href= "#" data-role="button"class="left" data-ajax= "false" data-value="5"> 5 <span class="floor-btn-bgtxt"></span></a>
                            <a href= "#" data-role="button" class="right" data-ajax= "false" data-value="6"> 6 <span class="floor-btn-bgtxt"></span></a>
                            <a href= "#" data-role="button"class="left" data-ajax= "false" data-value="7"> 7 <span class="floor-btn-bgtxt"></span></a>
                            <a href= "#"  data-role="button" class="right" data-ajax= "false" data-value="8"> 8 <span class="floor-btn-bgtxt"></span></a>
                            <a href= "#" data-role="button"class="left" data-ajax= "false" data-value="9"> 9 <span class="floor-btn-bgtxt"></span></a>
                            <a href= "#" data-role="button" class="right" data-ajax= "false" data-value="10"> 10 <span class="floor-btn-bgtxt"></span></a>
                            <a href= "#" data-role="button"class="left" data-ajax= "false" data-value="11"> 11 <span class="floor-btn-bgtxt"></span></a>
                            <a href= "#" data-role="button" class="right" data-ajax= "false" data-value="12"> 12 <span class="floor-btn-bgtxt"></span></a>
                            <a href= "#" data-role="button" class="left" data-ajax= "false" data-value="B"> B <span class="floor-btn-bgtxt"></span></a>
                        </div> 
                    </div>
                </div><!-- End: content -->  
            </div><!-- End: page -->
        </div><!-- End: wrapper -->
    </body>   
</html>

在此我正在读取 xml 并将每个节点保存到一个数组中。在 HTML 中,我有几个按钮(从 1 到 12 命名)、自动完成文本框、从 JS 中的这些数组中获取点击内容的链接。这一切都发生在一个 HTML 页面中并使用一个 XML 页面。现在,如果我点击按钮 1 并显示链接列表,如果我点击链接,它会提供一些信息。

附上请看结构:
index.html(有)--> Button1、button2、button3 等(单击 Button1)--> 显示链接列表 a1、a2、a3 等(单击 a1)--> 显示一些信息。

所有这些都发生在 index.html 页面上,并相应地显示或隐藏内容。因为,它只是一页,并且 URL 没有变化,因此后退按钮不起作用。我想显示单击后退按钮的最后状态。例如:在最后一个信息页面上,如果我单击返回按钮,它应该带我到链接列表页面。

由于那个后发问题,我想使用多页应用程序。但它正在从 XML 中读取所有内容,因此我不确定在不同的 html 页面上读取 XML 的最佳方式是什么。我发现了不同的方法,比如使用 cookie 或使用 JSON 来获取值。但我不确定将它们中的任何一个用于 iphone 原生应用程序是否好。

请建议我将我的应用程序设置为多页应用程序的最佳方法是什么。我对 jquery 还很陌生。

任何建议将不胜感激!

【问题讨论】:

  • 这个问题过于宽泛,并没有正确描述您最初是如何构建它的,因此没有人能真正建议如何以不同的方式进行。
  • 多页应用是什么意思?您希望在应用程序中添加一个或多个页面。从一个页面导航到另一个页面完全取决于您的应用程序流程。请以更好的方式描述您的问题/疑问以获得更好的响应。
  • 我已经用我的代码更新了我的问题。希望这会更加清晰。谢谢!!

标签: jquery iphone html xml cordova


【解决方案1】:

我已经通过使用 cookie 处理了这个问题。 我已将所有状态保存在 cookie 中,并在单击后退按钮时调用所有这些状态。

因此,我不需要将我的应用程序设置为多页应用程序。

非常感谢你!!

【讨论】:

    猜你喜欢
    • 2017-06-16
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    相关资源
    最近更新 更多