Javascript 我们如何仅更改网页的内部部分?

Javascript 我们如何仅更改网页的内部部分?,javascript,jquery,html,Javascript,Jquery,Html,我正在开发一个web应用程序,其中所有页面的页眉和页脚都是相同的。我想要实现的是,单击页眉中的按钮时,只更改页眉和页脚之间的页面部分。例如,有3个按钮“主页”、“活动”和“区域”。如果单击“活动”,则页面的页眉和页脚应保持不变,活动页面应位于页眉和页脚之间。我该怎么做?当页面交付时-页眉+正文+页脚合并。您可以将此视为一页。因此,如果您在标题中调用了正文中的一个元素,称为“Container”,那么如果您将其包含在正文部分,您将能够修改它。您使用的是PHP还是服务器端页面?您可以只包含页眉和页脚

我正在开发一个web应用程序,其中所有页面的页眉和页脚都是相同的。我想要实现的是,单击页眉中的按钮时,只更改页眉和页脚之间的页面部分。例如,有3个按钮“主页”、“活动”和“区域”。如果单击“活动”,则页面的页眉和页脚应保持不变,活动页面应位于页眉和页脚之间。我该怎么做?

当页面交付时-页眉+正文+页脚合并。您可以将此视为一页。因此,如果您在标题中调用了正文中的一个元素,称为“Container”,那么如果您将其包含在正文部分,您将能够修改它。

您使用的是PHP还是服务器端页面?您可以只包含页眉和页脚。Jquery非常复杂,只想在页面上包含页眉和页脚。

您正在寻找的是AJAX(异步JavaScript和XML的缩写)

在jQuery中,您可以使用


是一个关于如何使用php实现这一点的示例/教程。

您需要向服务器发出AJAX请求。服务器将使用HTML在页眉和页脚之间进行“注入”。AJAX回调hendler将用新内容替换当前内容


所有这些都是通过jQuery中的快捷方式
load
函数完成的。请参见创建包含内容的div,并为其指定唯一的类或id。
然后,在jquery代码中绑定一个单击事件,单击要用作导航的元素,并在该绑定中使用$(“#div”).load(“page.php”)或类似的东西将另一个文件中的内容加载到div

我同意rlemon。我认为jQuery/AJAX是您需要的。例如:

<html>
    <head>
        <!-- Include Jquery here in a script tag -->
        <script type="text/javascript">
            $(document).ready(function(){
                 $("#activities").click(function(){
                     $("#body").load("activities.html");
                 });
            });
        </script>
    </head>
    <body>
        <div id="header">
            <a href="#" id="activities">Activities</a>
            <!-- this stays the same -->
        </div>
        <div id="body">

            <!-- All content will be loaded here dynamically -->

        </div>
        <div id="footer">
            <!-- this stays the same -->
        </div>
    </body>
</html>

$(文档).ready(函数(){
$(“#活动”)。单击(函数(){
$(“#body”).load(“activities.html”);
});
});
在这个简单的实现中,我刚刚创建了两个简单的HTML页面,index.HTML将用作模板。和activities.html,其中包含我要动态加载的内容

因此,如果我单击Activities,它应该将Activities.html加载到中,而不会重新加载整个页面

您可以从下载jquery库

我还没有测试过这个,但它应该可以工作


希望有帮助:-)

或者,这可以通过iFrame实现。父页面(带有页眉和页脚)可以控制iframe并强制其导航

权衡:

  • 这可能会稍微慢一点(加载整个页面)
  • 根据您的情况,这可能更简单

您使用的是PHP、JSP还是ASP?那么您可以通过在代码中插入以下内容将页眉包含在页脚中。文件名将是文件的位置,如header.jsp或footer.jsp。因此,请确保如果在header或footer文件中有任何链接、图像或视频,请将它们设置为绝对链接,以便无论您将文件包含在哪个页面中,它们都能正常工作。我只想问一件事,所有页面的高度都会不同。我应该如何调整div主体的高度和宽度。高度:100%,宽度:100%,可以吗?不需要,高度通常会自动调整到HTML中的内容,href的ID是“#activities”,但应该是“activities”。@s在OP的查询中,他有3个要加载的网页,但是只要说你有10+…有没有办法将不同的页面合并到同一个脚本中?或者你只需要把剧本写10多次就行了?有点像“如果点击这个,然后点击这个,否则如果点击这个,然后点击这个,否则……”你需要让这个更动态。您可以为链接指定相同的类名,例如
links
。不要执行
$(“#活动”)。单击(function()…
,您可以执行
$(“.links”)。单击(function()
。在每个链接上,您可以有一个与要加载的页面名称匹配的属性。类似于此
。要加载它们,您可以执行以下操作:
$(“#body”).load($(this.attr)(“page”)+“.html”)
。现在,使用相同的逻辑,您可以拥有10多个页面。