【问题标题】:Iframe content depending on referring pageiframe 内容取决于引用页面
【发布时间】: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。

标签: ajax iframe


【解决方案1】:

您可以在 Javascript 中使用 document.referrer HTML DOM 属性以这种方式解决它:

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、...)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    相关资源
    最近更新 更多