Jump to content
  • 0

Safari и окна %)


Nekromancer
 Share

Question

Может браузеры на этом движке(тот что от apple) фигово работают с окнами, может я чёто не понимаю.. но вот такая конструкция никак не хочет работать :)(

newWin=window.open('/new/win.htm', '', 'width=561, height=700, scrollbar=1, resizable=1');
newWin.document.getElementById('Id').innerHTML = 'text';

пробовал так:

newWin=window.open('/new/win.htm', '', 'width=561, height=700, scrollbar=1, resizable=1');
newWin.onload = function() {
newWin.document.getElementById('Id').innerHTML = 'text';
}

тоже не работает..

из всег работало только

newWin.alert('Непонятно(с)');
newWin.close();

кто знает в чём проблемка?

Link to comment
Share on other sites

22 answers to this question

Recommended Posts

  • 0
Может браузеры на этом движке(тот что от apple) фигово работают с окнами, может я чёто не понимаю.. но вот такая конструкция никак не хочет работать :)(

newWin=window.open('/new/win.htm', '', 'width=561, height=700, scrollbar=1, resizable=1');
newWin.document.getElementById('Id').innerHTML = 'text';

кто знает в чём проблемка?

В понимании.

window.open - асинхронный процесс. Приведенный код примерно равен следующему: вы дали чертреж дома прорабу, а через минуту принесли ему окна, чтобы он вставил в дом, который будет построен через пол года.

onload не помог скорее всего потому, что вешается это событие на документ, которым, естесственно, на момент создания окна и не пахнет даже.

Решается извратной конструкцией, которая через определенный промежуток времени опрашивает окно на наличие документа, если он появился, то уже можно вешать onload.

Link to comment
Share on other sites

  • 0
вместо onload заюзай $(document).ready в jQuery

да-да я знаю что я сую этот фреймворк везде, но да без разницы - он хороший

Ты проверял на приведенном коде, прежде чем давать совет? Уверен, что приведенный код сработает?

Link to comment
Share on other sites

  • 0
Ты проверял на приведенном коде, прежде чем давать совет? Уверен, что приведенный код сработает?

Не уверен. Я знаю. document.ready в jQuery срабатывает в тот момент когда заканчивает строиться Dom структура страницы и доступен XPath. в этот момент уже существуют все элементы и их характеристики. отрисовка происходет уже после. jQuery кросбраузерен :) съел?)

Link to comment
Share on other sites

  • 0
Не уверен. Я знаю. document.ready в jQuery срабатывает в тот момент когда заканчивает строиться Dom структура страницы и доступен XPath. в этот момент уже существуют все элементы и их характеристики. отрисовка происходет уже после. jQuery кросбраузерен :) съел?)

Именно, когда заканчивается строиться DOM структура. А с чего ты взял, что сразу после открытия окна в нем есть хоть какой-то намек на документ? К чему привязывать обработчик?

Link to comment
Share on other sites

  • 0

кинь лучше линк где по русски про jQuery.. почитаю хоть :)

Именно, когда заканчивается строиться DOM структура. А с чего ты взял, что сразу после открытия окна в нем есть хоть какой-то намек на документ? К чему привязывать обработчик?

как бы там есть документ, ведь другие браузеры норм себя ведут..

для ИЕ и оперы ваще онлоад не нужен..

Link to comment
Share on other sites

  • 0
Именно, когда заканчивается строиться DOM структура. А с чего ты взял, что сразу после открытия окна в нем есть хоть какой-то намек на документ? К чему привязывать обработчик?

document как минимум уже создан на момент подключения JS - он есть. точка - это специфика DOM. т.е. происходит так - открываем окно - создается documrnt, потом последовательно создается DOM структура. сначала обрабатывается доктайп, потом шапка. когда о,рабатывается JS - в этот момент срабатывает триггер привязки document.ready. после этого уже грузится боди и когда ВСЕ загрузится и пошлются нужные заголовки document.ready это ловит и начинает выполнять указанные действия :)

s0rr0w, друг мой - не стоит мне говорить что я не знаю есть оно или нет - здесь немного людей, которые могут расписать по полочкам механику фреймворка или софтины. :( но Мы есть, а другие просто не хотят напрягаться с тобой спорить

Link to comment
Share on other sites

  • 0

Иван Шумов , так.. ты работаешь с jQuery, а я не очень к нему близок.. как правильно написать?

abilWin.$(document).ready = abilWin.document.getElementById("abil-bg").innerHTML = '<img src="images/' + abilName + '.jpg" id="abil-image" alt="' + abilName + '" title="' + abilName + '" />';

ссылочки на "где почитать" будет достаточно :)

Edited by Nekromancer
Link to comment
Share on other sites

  • 0
document как минимум уже создан на момент подключения JS - он есть. точка - это специфика DOM. т.е. происходит так - открываем окно - создается documrnt, потом последовательно создается DOM структура. сначала обрабатывается доктайп, потом шапка. когда о,рабатывается JS - в этот момент срабатывает триггер привязки document.ready. после этого уже грузится боди и когда ВСЕ загрузится и пошлются нужные заголовки document.ready это ловит и начинает выполнять указанные действия :)

s0rr0w, друг мой - не стоит мне говорить что я не знаю есть оно или нет - здесь немного людей, которые могут расписать по полочкам механику фреймворка или софтины. :( но Мы есть, а другие просто не хотят напрягаться с тобой спорить

Если бы ты не спешил, а вдумчиво посмотрел на код, который был приведен, то ты бы понял, что ему нужно из одного окна поменять содержимое другого окна.

На момент создания нового (window.open), создается объект document, но он переписывается потом нормальным документом.

Вот тебе простой пример

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title></title>
<script type="text/javascript">
newWin=window.open('blabla.html', '', 'width=1000, height=700, scrollbar=1, resizable=1');
newWin.document.myVar = "123";
</script>

</head>
<body>
<a href="#" onclick="alert(newWin.document.myVar); return false;">alert</a>
</body>
</html>

Что выведет алерт? Думаешь "123"?

Link to comment
Share on other sites

  • 0
Если бы ты не спешил, а вдумчиво посмотрел на код, который был приведен, то ты бы понял, что ему нужно из одного окна поменять содержимое другого окна.

На момент создания нового (window.open), создается объект document, но он переписывается потом нормальным документом.

Вот тебе простой пример

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title></title>
<script type="text/javascript">
newWin=window.open('blabla.html', '', 'width=1000, height=700, scrollbar=1, resizable=1');
newWin.document.myVar = "123";
</script>

</head>
<body>
<a href="#" onclick="alert(newWin.document.myVar); return false;">alert</a>
</body>
</html>

Что выведет алерт? Думаешь "123"?

s0rr0w, как ты правильно написал у себя в подписи - Бестолочь) кто-же работая с другими окнами создает переменные до того как загрузилась dom структура? если бы это было в пределах одного документа сработало бы, а тут конечно нет. :)

Link to comment
Share on other sites

  • 0
s0rr0w, как ты правильно написал у себя в подписи - Бестолочь) кто-же работая с другими окнами создает переменные до того как загрузилась dom структура? если бы это было в пределах одного документа сработало бы, а тут конечно нет. :)

Черт, какой ты проницательный :(

Посмотри на первый пост автора. И потом выдай ему решение на jQuery, как поменять контент открытого окна из открываемого.

Link to comment
Share on other sites

  • 0
Черт, какой ты проницательный :)

Посмотри на первый пост автора. И потом выдай ему решение на jQuery, как поменять контент открытого окна из открываемого.

скучно и не интересно:(

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy