多个网页中的 iframe 和链接
iframes and links in multiple webpages
我有一个网页 A.html。还有 3 个其他网页 a1.html a2.html a3.html。 a1、a2 和 a3 应始终在 A.html.
内的 iframe 中打开
现在有另一个网页 B.html,其中包含指向 A、a1、a2 和 a3 的链接。 Link 对于 A 不是问题,但是我如何在 B 中放置 a1 a2 和 a3 的链接,以便它们在 A 内的 iframe 中打开?
我想你想要一个类似这样的结构:
B-----------------------
A---------------------
a1-----------------
a2-----------------
a3-----------------
意味着 B
有 links 到 A
和 A
有 links 到 a1
, a2
和 a3
.
如果是这种情况,那么只需 link a1
、a2
和 a3
到 A.html
。比link后A.html
到B.html
中的iframe
.
代码可能是这样的:
B.html
<iframe src="A.html"></iframe>
A.html
<iframe src="a1.html"></iframe>
<iframe src="a2.html"></iframe>
<iframe src="a3.html"></iframe>
然后您可以分别拥有 a1
、a2
和 a3
html 文件,其中包含一些内容。
您不必在 [=27] 中为 a1
、a2
和 a3
输入 link =] 因为你已经加载了文件 A.html
,其中已经有 links 到这些文件。
这是使用适当的宽度和高度将获得的结构:
如果这不是您的情况,请在您的问题中多解释一下。
如果我没理解错的话,你希望 B.html
上的 link 打开 a1
、a2
和 a3
在 A.html
。因此,例如,我单击了 a1
,它将在 A.html
.
中打开 a1
这不能仅通过简单的 html 来完成,因为您的 link 位于单独的页面上。因此,您需要以某种方式告诉其他页面(在您的情况下为 A.html
)打开 default
、a1
... 等等。
您可以使用普通 javascript
来完成此操作。在 link 中的 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
上读取这些哈希值。你可以在 body 触发 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
条件下请求了哪个页面,您正在将框架的源设置为该特定页面。
希望这是你想要实现的。
我有一个网页 A.html。还有 3 个其他网页 a1.html a2.html a3.html。 a1、a2 和 a3 应始终在 A.html.
内的 iframe 中打开现在有另一个网页 B.html,其中包含指向 A、a1、a2 和 a3 的链接。 Link 对于 A 不是问题,但是我如何在 B 中放置 a1 a2 和 a3 的链接,以便它们在 A 内的 iframe 中打开?
我想你想要一个类似这样的结构:
B-----------------------
A---------------------
a1-----------------
a2-----------------
a3-----------------
意味着 B
有 links 到 A
和 A
有 links 到 a1
, a2
和 a3
.
如果是这种情况,那么只需 link a1
、a2
和 a3
到 A.html
。比link后A.html
到B.html
中的iframe
.
代码可能是这样的:
B.html
<iframe src="A.html"></iframe>
A.html
<iframe src="a1.html"></iframe>
<iframe src="a2.html"></iframe>
<iframe src="a3.html"></iframe>
然后您可以分别拥有 a1
、a2
和 a3
html 文件,其中包含一些内容。
您不必在 [=27] 中为 a1
、a2
和 a3
输入 link =] 因为你已经加载了文件 A.html
,其中已经有 links 到这些文件。
这是使用适当的宽度和高度将获得的结构:
如果这不是您的情况,请在您的问题中多解释一下。
如果我没理解错的话,你希望 B.html
上的 link 打开 a1
、a2
和 a3
在 A.html
。因此,例如,我单击了 a1
,它将在 A.html
.
a1
这不能仅通过简单的 html 来完成,因为您的 link 位于单独的页面上。因此,您需要以某种方式告诉其他页面(在您的情况下为 A.html
)打开 default
、a1
... 等等。
您可以使用普通 javascript
来完成此操作。在 link 中的 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
上读取这些哈希值。你可以在 body 触发 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
条件下请求了哪个页面,您正在将框架的源设置为该特定页面。
希望这是你想要实现的。