Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在一个html页面中包含多个页面_Javascript_Html_Css - Fatal编程技术网

Javascript 在一个html页面中包含多个页面

Javascript 在一个html页面中包含多个页面,javascript,html,css,Javascript,Html,Css,希望能够将多个不同的页面放入一个html页面中,类似于本文中发布的以下代码: 但是,我希望在页面上方有一个固定的标题,以便进行导航。 例如,标题有4个链接(Link1、Link2等),用户可以从中选择。如果用户单击“Link2”,则只有Link2会显示在下方,其他页面将保持隐藏状态 让我知道,谢谢 <html> <head> <script> function show(shown, hidden) {

希望能够将多个不同的页面放入一个html页面中,类似于本文中发布的以下代码:

但是,我希望在页面上方有一个固定的标题,以便进行导航。
例如,标题有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”的东西,它在哪里声明,是什么?如果你分开