Как загрузить title родителя из документа в IFrame?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Как загрузить title родителя из документа в... Expand / Collapse
Автор
Сообщение
29.08.2007 14:20
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 31.03.2008 16:02
Сообщ.: 693, Visits: 7 080
Я даю :

 parent.document.title="перемещения работника";

Но в странице-контейнере получаю заголовок "Undefined" .

А как по-другому это сделать?

Спасибо!
Евгений Боуден

Сообщ. #915644
29.08.2007 14:46
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Проверьте еще раз. Конструкция parent.document.title прекрасно работает.
Сообщ. #915645
29.08.2007 15:32
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 31.03.2008 16:02
Сообщ.: 693, Visits: 7 080
Подумал, что это связано с ивритским charset-ом. Нет. Не связано. Правда, вместо undefined стало "Web Page Dialog"
Написал в родительской странице функцию, которая считывает из document.title значение и записывает его в label. Записывается правильно. Как надо. Но вверху страницы по-прежнему только "Web Page Dialog". :(


Спасибо!
Евгений Боуден
Сообщ. #915646
29.08.2007 16:54
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 31.03.2008 16:02
Сообщ.: 693, Visits: 7 080
Понял, в чем проблема. Title загружается в первый раз. Потом в его Iframe загружается дочерняя страница и она пытается передать родителю Title. Тот получает его, но поскольку родительская страница не перерисовывается, то на ней по-прежнему старое состояние.

Спасибо!
Евгений Боуден
Сообщ. #915649
29.08.2007 17:49
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.05.2008 20:04
Сообщ.: 269, Visits: 2 381
evgenybe (29.08.2007)
Понял, в чем проблема. Title загружается в первый раз. Потом в его Iframe загружается дочерняя страница и она пытается передать родителю Title. Тот получает его, но поскольку родительская страница не перерисовывается, то на ней по-прежнему старое состояние.


Сомневаюсь, что именно в этом проблема....

1. Возможно родительское окно имеет пустой титл: <title> </title>
Тогда нужно чтонибудь в него написать....
2. Проверить будет ли работать в родителе document.title="hello world";
если да, то как вариант, если всё ещё не работает parent.document.title
в iframe:
function A() {
parent.a=1;
parent.abc="hello world 2";
}
A();

в родителе:
var abc="";
var a=0;
function B() {
if (a==1) {
document.title=abc;
alert(abc);
a=0;
}
setTimeout("B()",1000);
}
B();

Если нет, то есть ошибки в на странице в javascript'e....

3. не работает из-за старого или не доработанного браузера...


----------------------------------
Я безработный...
Возьмите меня на работу. =)
Сообщ. #915651
30.08.2007 9:15
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 31.03.2008 16:02
Сообщ.: 693, Visits: 7 080


Сомневаюсь, что именно в этом проблема....

1. Возможно родительское окно имеет пустой титл: <title> </title>
Тогда нужно чтонибудь в него написать....
2. Проверить будет ли работать в родителе document.title="hello world";
если да, то как вариант, если всё ещё не работает parent.document.title
в iframe:
function A() {
parent.a=1;
parent.abc="hello world 2";
}
A();

в родителе:
var abc="";
var a=0;
function B() {
if (a==1) {
document.title=abc;
alert(abc);
a=0;
}
setTimeout("B()",1000);
}
B();

Если нет, то есть ошибки на странице в javascript'e....

Прежде всего не знаю важно это или нет, но родительское окно было открыто командой ShowModalDialog. В title>Hellow, world!</title значение вписано изначально.

Теперь в доказательства того, что моя мысль верна:

1.Из дочернего окна я делаю parent.document.title = "ёклмн"

В родителе:

<script language=javascript>
<!--
function fOnLoad(){
 alert(document.title);
 document.title="Evgeny";
}
//-->
</script>

В вышеприведенном коде строка document.getElementById("lblTitle").innerText  = document.title прекрасно срабатывает и показывает в alert "ёклмн". Однако (после alert) в заголовке окна по прежнему "Hellow, world".

2. Если строку document.title="Evgeny"; вынести выше заголовка функции, то тогда это срабатывает. Но только однажды, при первой прорисовке окна. Все дальнейшие попытки (когда родитель уже загружен) ни к чему не приводят. Title таки да меняется, но не перерисовывается.

В JavaScript ошибок нет. Это единственная функция, которая в нем есть и она перед вами.

Броузер IE6 официальный, мы крупнейшая фирма в Израиле "Электрическая Корпорация Израиля" и у нас все лицензионное и проверенное.

Спасибо!
Евгений Боуден

Сообщ. #915657
30.08.2007 9:31
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
С большой вероятностью можно предположить что проблема именно в открытии окна в модальном диалоге. На эти окна накладывается ряд ограничений, которые только становятся жестче. Можете попробовать использовать библиотеку GreyBox. Она предназначена для работы со всплывающими окнами.
Сообщ. #915658
30.08.2007 12:12
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.05.2008 20:04
Сообщ.: 269, Visits: 2 381
evgenybe (30.08.2007)
[quote]
Прежде всего не знаю важно это или нет, но родительское окно было открыто командой ShowModalDialog.


Ну теперь ясно почему оно не изменяло значение титл'а...
Единственно, что могу добавить, что полностью согласен с bazile по поводу использовании библиотеки GreyBox...

Хотя если есть желание написать нечто похожее или своё, наподобие библиотеки GreyBox, то как вариант (основа):

<html>
<head>
<title> </title>
<script>
function A() {
document.getElementById("fon").style.width=document.body.clientWidth;
document.getElementById("fon").style.height=document.body.clientHeight;
document.getElementById("EditFrame").style.left=document.body.clientWidth/5;
document.getElementById("EditFrame").style.top=document.body.clientHeight/5;
}
function B() {
var a=/block/;
document.write('<div style="position:absolute;top:0;left:0;text-align:center;background:gold;filter:alpha (opacity=30);display:'+a+'" id="fon"><br><b style="position:absolute;color:black;font-size:35px;cursor:hand;" onClick="C(1)">Закрыть</b></div><IFRAME src="http://google.com" id="EditFrame" width="60%" height="60%" frameborder="0" contenteditable="true" style="position:absolute;display:'+a+'"></IFRAME>');
}
B();

function C(gg) {
if (gg==1) {
document.getElementById("fon").style.display="none";
document.getElementById("EditFrame").style.display="none";
}
else {
document.getElementById("fon").style.display="block";
document.getElementById("EditFrame").style.display="block";
}
}
</script>
</head>
<body onLoad="A()" onresize="A()">
<h1 style="cursor:hand" onClick="C(0)"> Click here
</body>
</html>


----------------------------------
Я безработный...
Возьмите меня на работу. =)
Сообщ. #915660
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников,