我在网页上有一个iFrame,在所有其他页面上我有一个按钮说“讨论”。当用户点击此按钮时,它会将他们带到iframe页面。
我想知道如何让iframe显示用户刚刚来自的页面?即带有讨论按钮的页面。
这样,最终用户将能够通过在iframe中查看该页面来讨论该页面。
提前致谢, 丹尼尔。
答案 0 :(得分:0)
以下是一个例子。两个文件必须位于同一目录中。
mainpage.html
:
<html>
<body>
<script>
function gotoFramePageNormal() {
window.open('framepage.html', '_top');
}
function gotoFramePageWithVar() {
window.open('framepage.html?ref='+document.location.href, '_top');
}
</script>
<input type=button value="Discuss" onclick="gotoFramePageNormal()" /> (normal referrer; via HTTP header)<br />
<br />
<input type=button value="Discuss" onclick="gotoFramePageWithVar()" /> (with URL variable referrer)<br />
</body>
</html>
framepage.html
:
<html>
<body>
<div>
Source: <span id="srcurl">...</span>
</div>
<iframe id="theframe" width=800 height=600></iframe>
<script>
(function() {
if (document.referrer=='') { //no referrer
//parse URL variables
var a=document.location.search,b,c;
while ( (a.length>0) && (a[0]=='?') ) a=a.substring(1,a.length);
//split variables
a=a.split('&');
//check each variable
for (b=0; b<a.length; b++) {
//split name and value
c=a[b].split('=');
if (c[0].toLowerCase()=='ref') {
//show source url
srcurl.innerText=decodeURI(c[1]);
//set iframe source
theframe.location.href=decodeURI(c[1]);
return;
}
}
//show no source url
srcurl.innerText='none';
} else { //has referrer
//show source url
srcurl.innerText=document.referrer;
//set iframe source
theframe.location.href=document.referrer;
}
})();
</script>
</body>
</html>
mainpage.html
使用URL变量将源页面传递给框架页面。通常,这是由Web浏览器自动完成的,但由于该功能可以被用户禁用,因此不够可靠。 framepage.html
将使用这两种方法来检测源页面网址。