【问题标题】:Static content in website网站中的静态内容
【发布时间】:2012-07-14 01:18:45
【问题描述】:

我有一个网站,我想将其中的一部分设为静态。发生的情况是每个页面的页眉、菜单栏和页脚都是一致的。我希望它们总是被加载,当我点击菜单按钮时,它只会重新加载网站的正文。

是否有一个简单的代码块可以尽早实现这一点? js或ajax中的东西?很抱歉,我没有足够的这些语言经验来独自完成一些事情。我已经尝试检查 jQuery 库,但它仍然让我很困惑。

谢谢。

【问题讨论】:

标签: javascript html css ajax


【解决方案1】:

我认为你甚至不需要 Ajax 或 css!只需使用 iFrame!他们太棒了,发生的事情是你只设计一个页面作为你的静态内容的持有者(Header-Menu ...),并将一个 iFrame 放在那里作为你想要加载的任何页面的占位符,你应该使用适当的 css 代码将 iFrame 放置在您想要的位置,现在,对于菜单中的每个链接,只需将“target”属性设置为等于您的 iFrame 的名称,所有链接都将加载到该 iFrame 中,您的页面将不会每次点击链接都会重新加载...我会返回一些代码...

【讨论】:

  • 不,它们不是很棒 - 它们完全被弃用了
  • 是的,是的,他们很老了,但他们让这份工作真的很容易......我的意思是,真的很容易!!!
  • 现在我们有 jQuery 我不同意
  • jQuery 表示 Javascript,因此无法达到可访问性......但无论如何,框架绝对不是解决方案
【解决方案2】:

只需在每个页面中添加一个带有标题、菜单栏和页脚 ID 的 div 容器,然后使用以下内容加载它:

$(document).ready(function(){ 
    $('#header').load('header.html');
    $('#menubar').load('menubar.html');
    $('#footer').load('footer.html');
});

只需确保 html 文件中没有 html、head 或 body 标记,只有您将在 div 中编写的 HTML 代码。就像 PHP 中的 include 函数一样。

编辑:

为了简单和简单的实现,将上面的代码存储在一个 .js 文件中(例如 include.js),并将其添加到每个头中,就在您的 html 文件的所有其他脚本的包含下方:

<script type="text/javascript" src="include.js"></script>

EDIT2:

另一种解决方案是加载页面内容,而不是页眉、菜单栏、页脚。 在这里,您采用相同的规范(内容 html 文件中没有 html、body 等标签)

为您的内容 div 命名,例如&lt;div id="content"&gt;&lt;/div&gt;

例如您的导航栏:

<div id="navbar">
    <a href="content1.html">Content1</a>
    <a href="content2.html">Content2</a>
</div>

JavaScript 代码:

$(document).ready(function() {
    //Click on a link that's child of the navbar
    $('#navbar > a').click(function() {
        //Get the html file (e.g. content1.html)
        var file = $(this).attr('href');
        //Load this file into the #content
        $('#content').load(file);
        return false;
    });
});

【讨论】:

  • 也非常感谢您提供此解决方案。我利用早上的时间做其他事情,但午饭后我会在网站上找到我离开的地方,并尝试每个人离开这里的各种方式。你的看起来干净又快速。
  • 有了这个用户可以查看内容,即使禁用了javascript,因为它是一个正常的页面链接。
【解决方案3】:

你应该考虑使用Server Side Included:http://httpd.apache.org/docs/current/howto/ssi.html

这不是很容易理解(因为它指的是 apache 配置),但这是一个非常好的解决方案。

简而言之,您在主页中包含部分 html 代码:

 <!--#include virtual="/footer.html" --> 

您不必使用或理解所有 JQuery Framewol,用户代理不必解析(如果他们能够!)Javascript。

这是 PHP / ASP / Java 的一个很好的替代品。

【讨论】:

    【解决方案4】:

    您可以使用 ajax 来请求每个页面的正文。但这只是一种可能性——有很多。另一种方法是使用脚本语言(php、perl)服务器端创建页面内容,并在那里使用一个函数,为每个页面添加页脚、页眉和其他任何内容。

    【讨论】:

      【解决方案5】:

      如果您对 Jquery 有所了解,请使用菜单链接上的点击事件将页面加载到 div 中,如下语法可能对您有所帮助。

      $(document).ready(function(){
         $("a.menu").click(function(){
            $("#bodyContent").load("http://abc.com/your-linked-page.html");
         });
      });
      

      要动态加载 url,请使用以下代码: 在您的菜单栏中,链接如下所示:

      <a href="javascript:void(0);" title="Specify-Complete-URL">Home</a>
      

      在您的 Jquery 代码中:

      $(document).ready(function(){
         $("a.menu").click(function(){
            url = $(this).attr("title"); // here url is just a variable
            $("#bodyContent").load(url);
         });
      });  
      

      第 1 步:将 Jquery 文件添加到您的 html 页面中。

      第 2 步:使用上面的 jquery 代码并将您的菜单链接更改为我在此处所说的新内容。

      第 3 步:如果你做得对,它会为你工作。

      【讨论】:

      • 如果您对 ajax 不太熟悉,load 方法会自动执行相同的操作。这可能是一个更简单的方法。
      • 它确实对我有用。请询问它是否不适合您。
      • 感谢您的帮助。我会试着消化它并让事情发生。
      • 好的,我等你的回复。
      • 实现代码的最佳方式是什么?我有点迷路了:)。
      【解决方案6】:

      传统的iframe 怎么样?

      在您的菜单中:

      <a target="body" href="URL_to_your_Menu1_page">Menu1</a>
      

      然后在文档中进一步:

      <iframe name="body" src="URL_to_homepage"></iframe>
      

      【讨论】:

        【解决方案7】:

        您可以使用框架集和框架并相应地组织您的页面。因此,包含菜单的框架可以始终处于显示状态,并且在单击菜单时显示内容时,您可以将目标设置为您希望加载内容的框架。

        【讨论】:

        • framesets 不支持 HTML5。
        • 那么使用HTML本身没有变化吗?最好不要深入研究 JavaScript 或 Ajax。问题是我自己不知道如何编写代码。是否有任何已经制作的脚本来完成此操作?
        • 相框和相框都是上个千年!
        猜你喜欢
        • 2021-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-09
        相关资源
        最近更新 更多