加载本地html文件时如何处理页面重定向?

时间:2013-02-25 14:08:42

标签: jquery-mobile cordova

在我的HTML文件中:

<div data-role="content" id="termsContent">
    <div id="termDiv"></div>
</div>

在我的js文件中:

$(function () {
    $("#termsPage").live('pagecreate', function(event,ui){
        $("#termDiv").load("tnc.html").trigger('create');
    });
});

然后,在我的tnc.html文件中:

<a href="http://www.xxx.com/usage-terms.html">

我似乎无法在Google上找到有关如何正确加载本地html页面的任何解决方案。有人对此有建议/经验吗?我想直接显示点击的链接。

1 个答案:

答案 0 :(得分:0)

你很近但不够。

  1. .trigger('create')在加载函数后无法使用。加载函数是异步的,因此我们需要等待成功状态才能触发pagecreate。
  2. 按钮示例不会显示,需要关闭。
  3. 请勿使用 pagecreate ,在这种情况下 pagebeforeshow
  4. 这是一个有效的例子:

    index.html:

    <!DOCTYPE html>
    <html>
    <head>
        <title>jQM Complex Demo</title>
        <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=no; target-densityDpi=device-dpi"/>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
            <script src="http://www.dragan-gaic.info/js/jquery-1.8.2.min.js"></script>        
        <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>    
        <script src="index.js"></script>
    </head>
    <body>
        <div data-role="page" id="index">
            <div data-theme="a" data-role="header">
                <h3>
                    First Page
                </h3>
                <a href="#second" class="ui-btn-right">Next</a>
            </div>
    
            <div data-role="content">
                        <div id="termDiv">
    
                        </div>
            </div>
    
            <div data-theme="a" data-role="footer" data-position="fixed">
    
            </div>
        </div>   
    </body>
    </html>   
    

    load.html:

    <a href="http://www.google.com" data-role="button" rel="external">Onen link</a>
    

    index.js:

    $(document).on('pagebeforeshow', '#index', function(){       
        $("#termDiv").load("load.html", function(){
            $('#index').trigger('create');
        });  
    });
    

    我希望这一直是你想要的。