Содержание iframe в зависимости от ссылающейся страницы - PullRequest
2 голосов
/ 08 ноября 2008

Есть ли способ изменить начальное содержимое iframe в зависимости от ссылающейся страницы?

Например, «страница 1» имеет iframe, отображающий «исходное содержимое 1», когда URL-адрес страницы 1 вводится непосредственно в адресной строке. Если щелкнуть ссылку на «странице 2», ссылающуюся на «страницу 1», то содержание iframe на «странице 1» будет начинаться как «начальное содержимое 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 в зависимости от URL-адреса, введенного в адресную строку. Например, я использовал скрипт:

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, чтобы iframe на странице 11 содержал страницу 12.

Вероятно, этот скрипт работает в Safari и IE, но не в FF: (

Как я уже говорил, любые советы по работе на PHP были бы фантастическими.

1 Ответ

1 голос
/ 08 ноября 2008

Вы можете решить эту проблему в Javascript, используя document.referrer HTML DOM свойство:

if (document.referrer != 'page2.html') {
   document.getElementById('iFrameId').src = 'content1.html';
}
else {
   document.getElementById('iFrameId').src = 'content2.html';
}

Вот некоторая документация по свойству реферера .

Вы можете сделать это и на стороне сервера. Просто скажите нам, какую среду (ASP.NET, PHP, ...) вы используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...