【问题标题】:Generate HTML within bootstrap在引导程序中生成 HTML
【发布时间】:2012-10-29 11:36:56
【问题描述】:

我已经下载了一个网站的引导模板,我正在尝试了解它是如何工作的。到目前为止看起来不错,但是我下载的模板在 5 个主要页面中具有很多相同的内容,并且它不是从一个地方生成或引用的。由于所有网页的导航栏都是相同的,我如何在没有服务器端的情况下引用所有页面以包含相同的标题(或其他 html)?这似乎是一个简单的 HTML 或 JS 解决方案,只是似乎找不到我要找的东西......

假设这是导航栏(另存为/component/navbar.html¿maybe?):

<div class="navbar">
        <div class="navbar-inner">
            <div class="container">
                <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </a>
                <a class="brand" href="index.html">
                    <b>Your</b>Site
                </a>
                <div class="nav-collapse fr">
                    <ul class="nav">
                        <li><a href="index.html">Home</a></li>
                        <li class="active"><a href="work.html">Our work</a></li>
                        <li><a href="about.html">About us</a></li>
                        <!-- <li><a href="plans.html">Pricing</a></li> -->
                        <li><a href="explore.html">Explore</a></li>
                        <li><a href="faq.html">FAQ</a></li>
                        <li><a href="alt.html">Alt</a></li>
                        <li><a href="contact.html">Contact</a></li>
                        <li><button class="btn btn-primary">Sign In</button></li>
                    </ul>
                </div><!--/.nav-collapse -->
            </div><!-- end .container -->
        </div><!-- end .navbar-inner -->
    </div><!-- end .navbar -->

如何将页面链接到要包含的这段 HTML?

【问题讨论】:

  • 这在 html 中是不可能的,你应该使用 php 或其他后端语言来做到这一点。 Javascript 不是一个选项,因为您希望没有 js 的人也能看到菜单。
  • 如果人们没有启用 javascript,那么大多数引导程序无论如何都是无用的 - 就像上面使用的 collapse
  • 同意,随着 JS 的普及,我愿意强迫人们使用它,特别是考虑到网站的内容只是内容,没有登录,没有安全方面,我只是想让网站和体验更愉快。
  • 我认为这是“老派”,即使考虑到任何人都会禁用 javascript。理论上可能发生在 90 年代。

标签: javascript html twitter-bootstrap include


【解决方案1】:

你可以用 jQuery 做到这一点,它总是出现在 boostrap 中。

&lt;div class="navbar"&gt; 中的内容移植到您建议的名为 /component/navbar.html 的文件中 - 所以 HTML 看起来像这样

<div class="navbar" id="navbar"> 
</div>

在脚本中,通过 AJAX 将 navbar.html 中的内容加载到 #navbar

$(document).ready(function(){
    $.ajax({
        url : 'component/navbar.html',
        success(html) {
            $("#navbar").html(html);
        }
    });
});

编辑:或者干脆$("#navbar").load('component/navbar.html'); 这可能是您正在寻找的解决方案,它的行为更像是一种可以放在标题中的“包含”。

【讨论】:

  • 我不断收到错误:Origin null is not allowed by Access-Control-Allow-Origin。我试过调查这个,并得到不同的方向。有什么想法吗?
  • 找到了。首先关闭所有 Chrome(因为这是主要问题),然后从终端,使用 /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --allow-file-access-from-files 使用特殊参数打开它
  • 它不应该是“运行时”问题。但是,我只能猜测为什么 load() 加载的正常代码应该是一个问题,以及为什么你想要它。谷歌如此密集地这样做的原因不是它很聪明,而是它是他们可以完成所有回调的唯一方法)
猜你喜欢
  • 1970-01-01
  • 2014-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-06
  • 2015-07-11
  • 2010-11-29
  • 1970-01-01
相关资源
最近更新 更多