Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Iframe и window.parent (https://javascript.ru/forum/events/7101-iframe-i-window-parent.html)

Viper 15.01.2010 12:21

Iframe и window.parent
 
Собственно есть страница с текстовым полем. Есть ссылка при клике на которую в Iframe посредством AJAX загружается некий документ. В этом документе список ссылок при клике на которые в текстовое поле родительского документа должен вставлятся некий текст.

пытаюсь сделать так

function insertInPos(param) {
window.parent.getElementByName("stage_manager").va lue("123");
}

PS! функция находится в iframe.

но ничего не происходит. в консоли пишется
window.parent.getElementByName("stage_manager") is null

Как решить проблему?

Kolyaj 15.01.2010 12:28

Цитата:

Сообщение от Viper
getElementByName

Нет такой функции, есть getElementsByName, которая возвращает коллекцию. Опять же value -- это не метод, а свойство.

Как-то так должно быть
function insertInPos(param) {
    window.parent.getElementsByName("stage_manager")[0].value = "123";
}

Viper 15.01.2010 12:32

Цитата:

Сообщение от Kolyaj (Сообщение 40659)
Нет такой функции, есть getElementsByName, которая возвращает коллекцию. Опять же value -- это не метод, а свойство.

Как-то так должно быть
function insertInPos(param) {
    window.parent.getElementsByName("stage_manager")[0].value = "123";
}

собственно теперь получил
window.parent.getElementsByName is not a function

Kolyaj 15.01.2010 12:34

function insertInPos(param) {
    window.parent.document.getElementsByName("stage_manager")[0].value = "123";
}

tenshi 16.01.2010 15:30

getElementById

Viper 19.01.2010 14:32

попутный вопрос. сделал обработку события для onClick

function insertInPos(id, param) {
	var sm = window.parent.document.getElementsByName("pr_mid")[0].value;
	var span = window.parent.document.getElementById("pr_mid_name").value;
	if (sm != "" || sm != "0" && span != "") {
		window.parent.document.getElementsByName("pr_mid")[0].value = sm+", "+id;
		window.parent.document.getElementById("pr_mid_name").innerHTML = span+", "+param;
	} else {
		window.parent.document.getElementsByName("pr_mid")[0].value = id;
		window.parent.document.getElementById("pr_mid_name").innerHTML = param;
	}
}

в родительском документе есть пустой <span id="pr_mid"></span>
и после него
<input type="hidden" name="pr_mid" value="<?php echo $row->pr_mid; ?>" />


но
1. не срабатывает проверка на то что value=0
2. в span вставляется текст вида undefined, Трансформеры - Месть падших

выглядит в DOM вот так


Часовой пояс GMT +3, время: 10:50.