html - jQuery Mobile 多个 HTML 文件

标签 html cordova jquery-mobile

这很烦人,但我正在构建一个 jQuery 移动网站。但是,如果我有一个名为 about 的页面,我希望它位于一个名为 about.html 的文件中。我确实设法让它工作,但突然间我无法获得打开单独页面的链接。我尝试了各种方法,现在我得到了一个白页。

这是我一直在搞乱的测试代码:

索引:

<!DOCTYPE html>
<html>
    <head>
        <title>Notification Example</title>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.css" />
        <link rel="stylesheet" href="style.css" />
        <script src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script>
        <script type="text/javascript" charset="utf-8" src="phonegap.0.9.4.min.js"></script>
        <script type="text/javascript" charset="utf-8">
            // Wait for PhoneGap to load
            //
            function onLoad() {
                document.addEventListener("deviceready", onDeviceReady, false);
            }

            // PhoneGap is ready
            //
            function onDeviceReady() {
                // Empty
            }

            $('#about').live('pagecreate',function(event){ AboutTest(); });
            $('#test2').live('pagecreate',function(event){ alert("loaded the page 2!"); });

            function AboutTest(){
                var element = document.getElementById('deviceProperties');

                element.innerHTML = 'Device Name: '     + device.name     + '<br />' +
                                    'Device PhoneGap: ' + device.phonegap + '<br />' +
                                    'Device Platform: ' + device.platform + '<br />' +
                                    'Device UUID: '     + device.uuid     + '<br />' +
                                    'Device Version: '  + device.version  + '<br />';
            }
        </script>
    </head>
    <body onload="onLoad()">
        <div data-role="page" id="home">
            <div data-role="header"><h2>Page 1</h2></div>
            <div data-role="content">
                <a href="about.html" data-url="about.html">testing</a>
            </div><!-- /content -->
            <div data-role="footer"><h4>Footer</h4></div>
        </div><!-- /page -->
    </body>
</html>

这是我要链接到的测试页面,about.html:

 <div data-role="page" id="about" data-title="about">
     <div data-role="header"><h1>Page 2</h1></div>
     <div data-role="content"><p id="deviceProperties">Loading device properties...</p></div>
     <div data-role="footer"><h4>Footer</h4></div>
 </div>

现在一切正常,JavaScript 代码运行,等等。然后我改变了一些东西。我不确定是什么,但我把它弄坏了,我这辈子都看不到它了。一个页面中包含所有页面的整个想法看起来是如此愚蠢和毫无意义。

最佳答案

如果您从内容中的链接中删除 "data-url='about.html'",它对我有用。此属性适用于页面 div。

您的第二页 (about.html) 可以是一个完整的 HTML 页面,只要它包含正文中的当前文本即可。 jQuery Mobile 以这种方式工作得很好,因为它将加载整个文件,然后提取页面 div。如果这看起来更合理,您可以将多个页面视为在 DOM 中缓存内容的一种方式!

关于html - jQuery Mobile 多个 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6097905/

相关文章:

javascript - 数字时钟在 FireFox 中不工作

android - 如何滚动到 android + phonegap 中的聚焦文本框?

javascript - 苹果商店指南。混合移动应用程序中的外部 JavaScript 文件

ios - 适用于 iOS 的 phoneGap 应用程序 : if application works in xCode device emulator

页面标题中链接按钮(无文本)的 Css,使用 Jquery Mobile

html - 强制关闭弹出窗口并重新打开它 Chrome 扩展

javascript - 'appendBuffer'上执行 'SourceBuffer'失败 : The HTMLMediaElement. 错误属性不为空

html - 是否可以使 "HTML to speech"与 "Text to speech"相同?

javascript - jQuery Mobile 转换根本不起作用

javascript - touchmove 在 Canvas 上绘制两条线而不是一条