多个网页中的iframe和链接

时间:2015-01-04 00:01:05

标签: html iframe href

我有一个网页A.html。还有3个其他网页a1.html a2.html a3.html。 a1,a2和a3应始终在A.html内的iframe中打开。

现在还有另一个网页B.html,其中包含指向A,a1,a2和a3的链接。 A的链接不是问题,但是如何在A中为a1 a2和a3添加链接,以便它们在A中的iframe中打开?

enter image description here

1 个答案:

答案 0 :(得分:2)

我想你想要一个类似的结构:

B-----------------------
  A---------------------
     a1-----------------
     a2-----------------
     a3-----------------

表示B包含指向AA的链接,指向a1a2a3的链接。

如果是这种情况,则只需将a1a2a3A.html相关联即可。然后将A.html链接到iframe中的B.html

代码可能类似于:

<强> B.html

<iframe src="A.html"></iframe>

<强> A.html

<iframe src="a1.html"></iframe>
<iframe src="a2.html"></iframe>
<iframe src="a3.html"></iframe>

然后你可以单独拥有a1a2a3个html文件。

您无需在a1中添加a2a3B.html的链接,因为您已加载文件{{1已经有这些文件的链接。


这是通过使用适当的宽度和高度获得的结构:

enter image description here

如果这不是您的情况,请在您的问题中再解释一下。


如果我理解正确,您希望A.html上的链接打开B.htmla1a2a3。例如,我点击了A.htmla1会在a1内打开A.html

这不能仅通过普通的html来完成,因为您的链接位于单独的页面上。所以,不管怎样,你需要告诉另一个页面(在你的情况下A.html)打开defaulta1 ......等等。

您可以使用普通javascript执行此操作。在您的链接的B.html中,您需要向A.html发送有关iframe中要打开的文件的信息:

<a href="A.html">A</a>
<a href="A.html#a1">a1</a>
<a href="A.html#a2">a2</a>
<a href="A.html#a3">a3</a>

#a1#a2 ...会告诉您的A.html页面在其iframe中打开请求的页面。

现在您需要在A.html上阅读这些哈希值。当身体触发onload事件时,您可以执行此操作。

<body onload="changeSrc()">
<!-- Load the default page in the iframe, for instance a1.html -->
<iframe id="abc" src="a1.html"></iframe>
<script>
    function changeSrc() {
        var hash = window.location.hash;
        var frame = document.getElementById("abc");

        if(hash == "#a1") {
            frame.src = "a1.html";
        }
        else if(hash == "#a2") {
            frame.src = "a2.html";
        }
        else if(hash == "#a3") {
            frame.src = "a3.html";
        }
        else {
            // default
            frame.src = "a1.html";
        }
    }
</script>
</body>

这将完成任务。

因此,通过使用window.location.hash,您实际上获得了url中传递的值,比如#a1#a2,...并通过检查在if/else条件中请求了页面,您正在将帧的来源设置为该特定页面。

希望这是你想要达到的目标。