【发布时间】:2008-11-08 13:34:43
【问题描述】:
有没有办法根据引用页面改变 iframe 的初始内容?
例如,当直接在地址栏中输入第 1 页的 URL 时,“第 1 页”有一个显示“初始内容 1”的 iframe。如果单击“第 2 页”上的链接,则“第 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 中做到这一点?
如果可能的话,我想根据输入到地址栏中的 URL 来改变 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 进行操作的技巧都很棒。
【问题讨论】:
-
我迷路了。将您的内容重命名为 page1/2/3 和 frame1/2/3。