在每个shtml页面phonegap上包含导航栏

时间:2014-02-11 14:11:41

标签: jquery twitter-bootstrap cordova shtml

我正在使用phonegap创建一个webapp,我使用<!--#include file="navbar.html" -->在每个shtml页面上包含一个导航栏 当我在浏览器中测试它时它工作正常,但是当我构建并运行phonegap时,不包括导航栏。有谁知道为什么?

更新 这是我简单的index.html代码,除了包含导航栏之外,还没有实现任何功能:

<!doctype html>
<html>

<head>
<title> DJKongsy - Home</title>
</head>
<body>
    <!--#include file="navbar.html" -->
</body>
</html>

导航栏是使用bootstrap创建的,这有助于找出它不起作用的原因吗?

更新2.0:

我在这里测试Liam的解决方案。

<nav class="navbar navbar-default" role="navigation">
  <!-- Collect the nav links, forms, and other content for toggling -->
  <div class="collapse navbar-collapse " id="bs-example-navbar-collapse-1">
    <ul class="nav nav-pills navbar-left">
        <li class="active"><a href="index.html">Home</a></li>
        <li class="active"> <a href="musictab3.shtml">Music</a></li>
        <li class="active"><a href="abouttab.shtml">About</a></li>
        <li class="active"><a href="gigs.shtml">Gigs</a></li>
    </ul>
    <ul class="nav nav-pills navbar-right">
      <li class="active"><a id="userLink" href="logintab.shtml">Log in</a></li>
    </ul>

  </div><!-- /.navbar-collapse -->
</nav>
<div id="pageContent">
    <h1>CONTENT</h1>
</div>
<script>

    $(document).ready(function(){
        var user = $.jStorage.get('userInfo');
        if(user.username!=''){
            document.getElementById('userLink').innerHTML=user.username;
        }
        else{
            document.getElementById('userLink').innerHTML="Log in";
        }
        $( "a" ).on( "click", function( event ){
           // Prevent the usual navigation behavior
           event.preventDefault();
            $.get($(this).attr("href"), function(data) {
                var resp = $(data);
                $("#pageContent").html($("#pageContent", resp).html());
                $('#pageContent').load('gigs.shtml #pageContent');
            }); 
        });
    });
</script>

单击时,如何显示导航栏中每个选项卡的内容?例如div“pageContent”中的内容是什么?

下面的代码适用于从页面获取静态html信息,但它不会在我的<script>标记中运行。为什么呢?

$('#pageContent').load('gigs.shtml #pageContent');

1 个答案:

答案 0 :(得分:2)

执行此操作的最佳方法(我自己完成)是将您的导航栏放在index.html文件中(而不是“包含文件”),然后使用jquery将每个页面内容拉入您的主页/主页面,它的效果非常好。

索引:

<html>
    <head>
        <title>
            Blahblah
        </title>
    </head>
    <body>
        <nav>
            <ul>
                <li><a href="index.html">Home</a></li>
                <li><a href="about.html">About</a></li>
                <li><a href="contact.html">Contact</a></li>
            </ul>
        </nav>
        <div id="pageContent">
            <h1>CONTENT</h1>
        </div>
    </body>
</html>

然后是脚本......

 $(document).ready(function(){
        $( "a" ).on( "click", function( event ){
          // Prevent the usual navigation behavior
          event.preventDefault();
               $.get($(this).attr("href"), function(data) {
                    var resp = $(data);
                    $("#pageContent").html($("#pageContent", resp).html());
                }); 
        });
});