有没有办法根据引用页面改变iframe的初始内容?
例如,当第1页的网址直接在地址栏中输入时,“第1页”的iframe显示“初始内容1”。如果点击“第2页”链接到“第1页”,“第1页”上的iframe内容将以“初始内容2”开头。
我希望这是有道理的。
非常感谢splattne。
我刚试过你的想法,但我无法做到。我的页面现在在正文中有以下内容:
if (document.referrer != 'page2.html') {
document.getElementById('prdfrm2').src = 'contenta.html';
}
if (document.referrer != 'page3.html') {
document.getElementById('prdfrm2').src = 'contentb.html';
}
if (document.referrer != 'page4.html') {
document.getElementById('prdfrm2').src = 'contentc.html';
}
else {
document.getElementById('prdfrm2').src = 'contentx.html';
}
似乎我访问父页面(直接,从第2,3或4页的链接)加载相同的内容,来自contentc
的内容 - 你能想到为什么吗?
感谢帮助人员,但我仍然遇到问题。如果这可以做到'服务器端'那将是很好的但我对此很少有经验。有谁知道如何用PHP做到这一点?
如果可能,我想根据输入地址栏的网址更改iframe内容。例如,我一直在使用脚本:
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
function gup( name ) {
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null )
return "";
else
return results[1];
}
addLoadEvent(function() {
var targetURL = gup("iframe");
document.all.myIframe.src=targetURL;
})
在地址栏中,我可以输入http://mysite.com/page11.html?&iframe=page12.html
,以便第11页的iframe包含第12页。
问题是此脚本适用于Safari和IE但不适用于FF :(
正如我所说的,在PHP中使用它的任何提示都很棒。
答案 0 :(得分:1)
您可以使用 document.referrer HTML DOM属性在Javascript中以这种方式解决:
if (document.referrer != 'page2.html') {
document.getElementById('iFrameId').src = 'content1.html';
}
else {
document.getElementById('iFrameId').src = 'content2.html';
}
这是some documentation on the referrer property。
你也可以在服务器端做。只需告诉我们您正在使用的环境(ASP.NET,PHP,...)。