2011-10-03 2 views
1

Итак, я использую iframe следующим образом: <iframe src="script.php"></iframe> (с другими атрибутами, конечно).Измените атрибут SRC из родительского iframe

Теперь, что я пытаюсь сделать, это то, что script.php выполняет некоторые действия, чем выводит JS-скрипт, который должен изменить атрибут SRC iframe на другую страницу.

Возможно ли это?

+1

Это явно должно быть атрибутом 'src'? Будет ли 'location.href' внутри iframe не делать? –

+0

Предостережение при использовании скриптов crossdomain, если это применимо. –

+0

Я этого не помню. Благодаря! –

ответ

1

Допустим только один кадр, без идентификатора или имени:

document.getElementsByTagName("iframe")[0].src = "http://new.url"; 

Если текущее местоположение кадра находится в том же домене:

frames[0].location.href = "http://new.url"; 

Если у вас есть несколько кадров, это очень разумно приложить идентификатор к нему. Если вы хотите получить доступ к кадру через frames объекта, установить имя:

<iframe id="myframe" name="a_frame_name" src="script.page"></iframe> 

JavaScript: 
document.getElementById("myframe").src = "newpage.php"; 
frames.a_frame_name.location.href = "newpage.php"; 
frames["a_frame_name"].location.href = "newpage.php"; 

Примечание: frames[..].location.href может быть изменен только если главная страница и расположения кадра находится на тот же хост, в связи с Same Origin policy ,

+0

это либо не сработало, либо что-то не так с моим скриптом.php. Мой скрипт.php echo выглядит примерно так: , который не обновляет iframe: s –

+0

Это был правильный ответ. Я предполагаю, что что-то не так, когда вы добавляете скрипт. Вы используете ajax для получения вывода PHP? Потому что если это так, вам нужно будет фактически добавить скрипт в DOM. – jtfairbank

+0

@ user726049 Ваш код должен быть: 'document.getElementbyId ('iframe'). Src = 'http: //google.com';'. Кроме того, убедитесь, что IFrame уже существует при выполнении этой функции. –

Смежные вопросы