Есть ли способ изменить исходное содержимое 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 были бы фантастическими.





Вы можете решить эту проблему в 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, ...) вы используете.
Я заблудился. переименуйте свой контент как page1 / 2/3 и frame1 / 2/3.