Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Создать окно и добавить элемент (https://javascript.ru/forum/events/23046-sozdat-okno-i-dobavit-ehlement.html)

Почемучкин 10.11.2011 01:26

Создать окно и добавить элемент
 
Есть такая странность: в FireFox создаю скриптом окошко и пытаюсь туда записать какой-нибудь элемент с помощью document.createElement. И не получается.

Если попробовать букмарклетом добавить элемент в уже существующее окошко - без проблем, а вот одним и тем же скриптом или букмарклетом создать окно, а потом в это окно что-то добавить - не получается. Как решить эту проблему?

javascript:
(function(){
  var wn=window.open('about:blank');
  var d=wn.document;
  e=d.createElement('hr');
  d.body.appendChild(e);
  alert("ok");
}
)();


d.write("<hr>") работает, но не для всех элементов и мне хотелось бы более правильный метод использовать, чтобы был больший контроль за деревом элементов.

ksa 10.11.2011 09:16

Цитата:

Сообщение от Почемучкин
d.write("<hr>")
работает, но не для всех элементов

А для каких не работает? :blink:

ksa 10.11.2011 09:18

Цитата:

Сообщение от Почемучкин
мне хотелось бы более правильный метод использовать

Если использовать "пустой хтмл файл"
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
</style>
<script type="text/javascript">
</script>
</head>
<body>
</body>
</html>

Тогда твой код сработает... ;)

Почемучкин 10.11.2011 18:05

А если не файл, а открыть окошко пустое - "about:blank"?
Весь фокус в том, чтобы сгенерировать окошко с содержимым.

Gozar 10.11.2011 18:33

Цитата:

Сообщение от Почемучкин (Сообщение 135718)
А если не файл, а открыть окошко пустое - "about:blank"?

Тебе религия запрещает проверить и поэтому ты спрашиваешь на форуме?

Цитата:

Сообщение от Почемучкин (Сообщение 135718)
Весь фокус в том, чтобы сгенерировать окошко с содержимым.

Тебе уже показали как это сделать, фокусы не нужны для этого.

Почемучкин 10.11.2011 21:35

ksa
Всё, спасибо, получилось. Сделал так:
javascript:
(function(){
  var wn=window.open('about:blank');
  var d=wn.document;
  d.open();
  d.write('<!DOCTYPE html><html><head><style type="text/css"></style><script type="text/javascript"></script></head><body></body></html>');
  d.close();
  e=d.createElement('textarea');
  d.body.appendChild(e);
  alert("ok");
}
)();


Gozar
Плиз, персонально тебя прошу, кончай флеймить. Если нет у тебя конкретных советов, не надо на меня наезжать.
У меня просто с about:blank не работало, иначе бы не спрашивал.

Почемучкин 10.11.2011 21:50

Прикольно - попробовал без document.write - просто
d.open();
d.close();

И тоже работает, а без этого не хочет :)
Что-то припоминаю когда-то уже такое находил, но очень давно и забыл.

Gozar 10.11.2011 22:39

Почемучкин,
Какие ещё наезды, я тебе дал ценный совет.
К чему ты придираешься? Тебе же уже ответили, а ты придираешься. Проверить совет который уже дали намного быстрее, чем задавать вопрос заново на который уже дали ответ.

Не обольщайся, ты не единственный и не первый кому дают такой совет. Его ценность ты поймешь со временем.


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