我有一个网站,其中所有导航都发生在iframe内部。所有页面都本地存储在服务器上。
html代码的简化版本是:
>> index.php
<html>
<head>
</head>
<body>
<table><tr><td>
<iframe src="link.php" width=599 height=350 frameborder=0 scrolling=no name="vframe"></iframe>
<td>
<img src="pic.jpg">
</body>
</html>
注意img在主页面内。但是,我希望此图像根据导航到iframe内的链接进行更改。
现在我正在使用php GET来确定导航到哪个页面,但这不是一个很好的解决方案,因为所有用户必须做的就是修改链接并且所需的图像消失。
例如:
<?
$locate = $_GET['locate'];
?>
<html>
<head>
</head>
<body>
<table><tr><td>
<? { if ($locate =="link") {
echo '<iframe src="link.php" width=599 height=350 frameborder=0 scrolling=no name="vframe"></iframe>
<td>
<img src="pic.jpg">';
}
?>
</body>
</html>
iframe页面内的链接是:
http://example.com/index.php?locate=link
我想做的是以某种方式让父页面持有iframe来识别iframe内部的页面,并使图像的显示取决于上面的hack而不是hack。我认为这将是一种更可靠的方式,并且不受用户操纵链接的影响。
顺便说一句,如果有办法可以找到&#39;在没有地址栏中显示的链接的链接中,这可能是一种妥协。但据我所知,这无法完成。
====
修改
我发现了这个:
document.getElementById("iframe_id").contentWindow.location.href
但我不确定如何实施它。
我试过
<script>document.write(document.getElementById("vframe").contentWindow.location.href );</script>
在身体和头部......
但不显示iframe链接
我试过这个:
<html>
<head>
<script>
function getLink()
{
var x=document.getElementById("vframe").contentWindow.location.href;
}
</script>
</head>
<body>
<iframe src="start.php" width=599 height=350 frameborder=0 scrolling=no name="vframe"></iframe>
</body>
</html>
但如果它应该起作用,我就无法弄清楚如何阅读&#39; var x ...
的结果我试过这个:
<html>
<head>
</head>
<body>
<iframe src="start.php" width=599 height=350 frameborder=0 scrolling=no id="vframe"></iframe>
<script>document.write(document.getElementById("vframe").contentWindow.location.href);</script>
</body>
</html>
但结果是&#34; about:blank&#34;。如果我将它放在头部或iframe上方,则没有结果......