代码之家  ›  专栏  ›  技术社区  ›  Matt

Iframe内容取决于参考页面

  •  2
  • Matt  · 技术社区  · 16 年前

    有没有办法根据引用页面改变iframe的初始内容?

    例如,当直接在地址栏中键入第1页的URL时,“第1页”有一个iframe显示“初始内容1”。如果点击“第2页”上的链接链接到“第1页”,则“第1页”上的框架内容将以“初始内容2”开头。

    我希望这是有道理的。


    非常感谢斯帕顿。

    我刚试过你的想法,但我做不好。现在,我的页面正文中包含以下内容:

    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实现它的提示都将非常棒。

    1 回复  |  直到 13 年前
        1
  •  1
  •   splattne    15 年前

    您可以通过Javascript使用 文件推荐人 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等)你正在使用。