Opera, frames, javascript

Sash [None]

Новичок
Opera, frames, javascript

Скажите, в ИЕ работает, а можно ли засавить работать конструкцию типа:

frames.parent.top_frame.chat.innerText = text;

в опере и нетскейпе? Или для них нужны какие-нибудь другие функции, или даже не пытаться?

-~{}~ 29.05.04 00:05:

Ой, по привычке написал в ПХП, а надо было в Java сунуться. Простите.
 

Profic

just Profic (PHP5 BetaTeam)
Gecko (nn7+ и Мозилла) и opera7+ имеют почти нормальную поддержку DOM и работать там нужно соответственно с через него. Это что касается innerHTML, хотя то ли в мозилле, то ли в опере innerHTML с какой-то версии работает

Но если фреймы находятся на разных портах, тем более на разных доменах, то в последнем случае не поможет ничего. В первом только IE и конквер (из KDE)
 

Sash [None]

Новичок
Да нет, у меня всё хорошо в плане размещения. Всё на одном серваке, одной папочке. :) Только про ДОМ я так и не догнал, искал в поиске, там столько всего выдаёт, что мозги плавятся начинают. Обидно, в эксплорере сделал, довольно просто и работает. Можешь подскажешь, что за ДОМ и как с ним работать?
 

fixxxer

К.О.
Партнер клуба
innerHTML прекрасно поддерживается в Опере 7+ и Gecko-броузерах. А более ранними версиями сейчас вряд ли кто пользуется.
 

Sash [None]

Новичок
fixxxer Дело в том, что загвоздка не в innerHTML, а в том, что мне нужно данные из одного фрема перекинуть в другой.
 

SashOk

Guest
так попробуй:
frames.parent.top_frame.document.getElementById('chat').innerHTML = text;
 

IBSN

Новичок
www.google.com -> W3C DOM
а насчет InnerHTML , Mozilla смягчила соответствия к ДОМ и посему реализовала эту возможность...
а пример ДОМ:

var txt = document.createTextNode("Test!");
document.getElementById("myP").appendChild(txt);
идентичен
document.getElementById("myP").innerHTML = "Test!";
 

Sash [None]

Новичок
IBSN, я не понимаю. Я тебе говорю о том, что мне нужно перекинуть данные из одного фрейма в другой, а ты мне пишешь: document.getElementById, который ищет ИД в текущем фрейме. Либо ты, либо я чего-то не понимаем.

-~{}~ 30.05.04 21:08:

SashOk, работает, но опять же, только в ИЕ.
 

Sash [None]

Новичок
Frol, мазила, спасибо, никаких уже. Заработало. А вот опера до сих пор не воспринимает. Странно. Кстати, как в опере сделать так, чтобы выводились ошибки яваскрипта? Версия 7.23

-~{}~ 31.05.04 10:15:

и ещё? Как через яваскрипт можно указать срц фрейма?
что-то вроде:
frames.parent.hiden.src='hidden.php'
правда не так...
 

MD

Guest
frames.parent.hiden.document.location.href='hidden.php'; - не подойдет?
 

Sash [None]

Новичок
MD, прошло, только чуть по другому:
function loadhiden(){
frames.parent.hiden.location.href="hidden.php";
}

Но всё же мне хотелось бы вернуться к моему основному вопросу: КАК в опере переслать информацию из одного фрейма в другой?
 

IBSN

Новичок
Автор оригинала: Sash [None]
IBSN, я не понимаю. Я тебе говорю о том, что мне нужно перекинуть данные из одного фрейма в другой, а ты мне пишешь: document.getElementById, который ищет ИД в текущем фрейме. Либо ты, либо я чего-то не понимаем.

-~{}~ 30.05.04 21:08:

SashOk, работает, но опять же, только в ИЕ.
кто это писал:
"
Только про ДОМ я так и не догнал, искал в поиске, там столько всего выдаёт, что мозги плавятся начинают. Обидно, в эксплорере сделал, довольно просто и работает. Можешь подскажешь, что за ДОМ и как с ним работать?
"

теперь прочти мой пост и посмотри что ты спрашивал... :cool:
 

Sash [None]

Новичок
IBSN, прочитал. Посмотрел ещё раз. И до сих пор понять не могу. У меня есть ДВА фрейма, которые надо связать. В первом, назовём его bottom_frame сделал конструкцию вида:

function add(text)
{
frames.parent.top_frame.document.getElementById('chat').innerHTML = text;
}
Это ДОМ? Как бы то ни было, в эксплорере и нетскейпе работает. В опере нет.
 

Profic

just Profic (PHP5 BetaTeam)
Sash [None]
Насчет 7.23 не знаю, а вот в 7.50 ошибки JS можно получить так: "Tools->Advanced->JavaScript console"

-~{}~ 01.06.04 00:53:

function add(text)
{
frames.parent.top_frame.document.getElementById('chat').appendChild (frames.parent.top_frame.document.createTextNode (text));
}
А так?
 

Sash [None]

Новичок
Profic, консоль оперы нашел... а функция не раьботает. да ещё странно... передаваемый текст не воспринимается как HTML код, в моём случае - воспринимается... бред какой-то...
 

Profic

just Profic (PHP5 BetaTeam)
Sash [None]
YНе аботает - это как? Что говорит в косоли? в данном случае html и не будет работать, ведь оно textNode
 

Sash [None]

Новичок
Inline script thread
Error:
name: TypeError
message: Statement on line 6: Expression evaluated to null or undefined and is not convertible to Object: frames.parent
Backtrace:
Line 6 of inline#1 script in http://sashnone.spb.ru/chat/hidden.php
frames.parent.top_frame.document.getElementById("chat").appendChild(frames.parent.top_frame.document.createTextNode(text));
Line 2 of inline#1 script in http://sashnone.spb.ru/chat/hidden.php
add("<a href=\"javascript:addnick('Sash [None]');\">Sash [None]</a>: Testing text!<br><a href=\"javascript:addnick('anything');\">anything</a>: Hello!<br>");
 

Profic

just Profic (PHP5 BetaTeam)
О, поглядел на спеки :)
function add(text)
{
window.parent.frames.top_frame.document.getElementById('chat').appendChild (window.parent.frames.top_frame.document.createTextNode (text));
}
А вообще почитай описалово DOM в Gecko - там есть описание почти всех объектов, которых нет в DOM и в JS...
 
Сверху