Javascript 在一个html页面中包含多个页面
希望能够将多个不同的页面放入一个html页面中,类似于本文中发布的以下代码: 但是,我希望在页面上方有一个固定的标题,以便进行导航。Javascript 在一个html页面中包含多个页面,javascript,html,css,Javascript,Html,Css,希望能够将多个不同的页面放入一个html页面中,类似于本文中发布的以下代码: 但是,我希望在页面上方有一个固定的标题,以便进行导航。 例如,标题有4个链接(Link1、Link2等),用户可以从中选择。如果用户单击“Link2”,则只有Link2会显示在下方,其他页面将保持隐藏状态 让我知道,谢谢 <html> <head> <script> function show(shown, hidden) {
例如,标题有4个链接(Link1、Link2等),用户可以从中选择。如果用户单击“Link2”,则只有Link2会显示在下方,其他页面将保持隐藏状态 让我知道,谢谢
<html>
<head>
<script>
function show(shown, hidden) {
document.getElementById(shown).style.display='block';
document.getElementById(hidden).style.display='none';
return false;
}
</script>
</head>
<body>
<div id="Page1">
Content of page 1
<a href="#" onclick="return show('Page2','Page1');">Show page 2</a>
</div>
<div id="Page2" style="display:none">
Content of page 2
<a href="#" onclick="return show('Page1','Page2');">Show page 1</a>
</div>
</body>
</html>
功能显示(显示、隐藏){
document.getElementById(如图所示).style.display='block';
document.getElementById(隐藏).style.display='none';
返回false;
}
第1页内容
第2页内容
您可以只使用ID,但如果您获得的页面太多,就会开始变得有点乏味。我建议使用类来进行隐藏。此外,如果您希望页面有一个通用的标题,您只需要从HTML元素构建它,然后在那里而不是页面内容中显示页面链接
我提出了另一个建议,在所有页面div中添加了一个“page”类。然后,您可以使用“page”类隐藏所有div,并使用ID显示所需的div。这也是一个不太灵活的系统,您无法轻松地完成动态页面量或动态首页,但这是一个开始。下面是我的例子:
这在JSFIDLE中,但下面是直接的代码:
<html>
<head>
<style type='text/css'>
span {
text-decoration:underline;
color:blue;
cursor:pointer;
}
</style>
<script>
// show the given page, hide the rest
function show(elementID) {
// try to find the requested page and alert if it's not found
var ele = document.getElementById(elementID);
if (!ele) {
alert("no such element");
return;
}
// get all pages, loop through them and hide them
var pages = document.getElementsByClassName('page');
for(var i = 0; i < pages.length; i++) {
pages[i].style.display = 'none';
}
// then show the requested page
ele.style.display = 'block';
}
</script>
</head>
<body>
<p>
Show page
<span onclick="show('Page1');">1</span>,
<span onclick="show('Page2');">2</span>,
<span onclick="show('Page3');">3</span>.
</p>
<div id="Page1" class="page" style="">
Content of page 1
</div>
<div id="Page2" class="page" style="display:none">
Content of page 2
</div>
<div id="Page3" class="page" style="display:none">
Content of page 3
</div>
</body>
</html>
跨度{
文字装饰:下划线;
颜色:蓝色;
光标:指针;
}
//显示给定页面,隐藏其余页面
功能显示(elementID){
//尝试查找请求的页面,如果未找到,则发出警报
var ele=document.getElementById(elementID);
如果(!ele){
警报(“无此类元素”);
回来
}
//获取所有页面,循环浏览并隐藏它们
var pages=document.getElementsByClassName('page');
对于(变量i=0;i
第1页内容
第2页内容
第3页内容
进一步的开发思路包括:一个next/prev按钮,它使用Page1 Page2…PageN页码作为变量,循环遍历所有页面并显示最后一个页面。或者显示第一个。之后,会出现一个Next/Previous(下一个/上一个)按钮,该按钮在变量中跟踪当前页面,然后转到下一个页面。您只能使用ID,但如果您获得的页面太多,就会开始变得有点乏味。我建议使用类来进行隐藏。此外,如果您希望页面有一个通用的标题,您只需要从HTML元素构建它,然后在那里而不是页面内容中显示页面链接 我提出了另一个建议,在所有页面div中添加了一个“page”类。然后,您可以使用“page”类隐藏所有div,并使用ID显示所需的div。这也是一个不太灵活的系统,您无法轻松地完成动态页面量或动态首页,但这是一个开始。下面是我的例子: 这在JSFIDLE中,但下面是直接的代码:
<html>
<head>
<style type='text/css'>
span {
text-decoration:underline;
color:blue;
cursor:pointer;
}
</style>
<script>
// show the given page, hide the rest
function show(elementID) {
// try to find the requested page and alert if it's not found
var ele = document.getElementById(elementID);
if (!ele) {
alert("no such element");
return;
}
// get all pages, loop through them and hide them
var pages = document.getElementsByClassName('page');
for(var i = 0; i < pages.length; i++) {
pages[i].style.display = 'none';
}
// then show the requested page
ele.style.display = 'block';
}
</script>
</head>
<body>
<p>
Show page
<span onclick="show('Page1');">1</span>,
<span onclick="show('Page2');">2</span>,
<span onclick="show('Page3');">3</span>.
</p>
<div id="Page1" class="page" style="">
Content of page 1
</div>
<div id="Page2" class="page" style="display:none">
Content of page 2
</div>
<div id="Page3" class="page" style="display:none">
Content of page 3
</div>
</body>
</html>
跨度{
文字装饰:下划线;
颜色:蓝色;
光标:指针;
}
//显示给定页面,隐藏其余页面
功能显示(elementID){
//尝试查找请求的页面,如果未找到,则发出警报
var ele=document.getElementById(elementID);
如果(!ele){
警报(“无此类元素”);
回来
}
//获取所有页面,循环浏览并隐藏它们
var pages=document.getElementsByClassName('page');
对于(变量i=0;i
第1页内容
第2页内容
第3页内容
进一步的开发思路包括:一个next/prev按钮,它使用Page1 Page2…PageN页码作为变量,循环遍历所有页面并显示最后一个页面。或者显示第一个。之后,会出现一个Next/Previous(下一页/上一页)按钮,用于跟踪变量中的当前页,然后转到下一页。您缺少一些代码。在onclick中,您使用了一种称为“dijit”的东西,它在哪里声明,是什么?如果您将javascript分离到HTML正文之外的某个地方,这将更容易。只需使用上面的新代码编辑帖子,是否可以使用这段代码创建标题,或者是否有其他方法?是的,可以,但不是很灵活。我在下面举了一个可能更有用的例子。常见的“标题”是“显示第1、2、3页”,数字可以点击。实际内容隐藏在div标题下,就像您的问题一样。您缺少一些代码。在onclick中,您使用了一种称为“dijit”的东西,它在哪里声明,是什么?如果你分开