CodeInside
@CodeInside

Почему не добавляются дочерные элементы (работа с DOM)?

Заметил, что не добавляются дочерние элементы в DOM. Например, вчера работал на одном компе и title отлично добавлялся в head на страницу. Сегодня запускаю этот же код, но на другом компе (браузеры тоже Chrome, FireFox) и вижу, что нету title в DOM. Да и вообще земетил, что window_.document.body.appendChild(obj); не работает ни с одним элементом. При этом интерпретатор не выдаёт ошибки. С чем это может быть связано и как решить эту проблему?
Второй вопрос косается того, что window_.resizeTo неправильно изменяет размеры окна (нужно, чтобы окно было того же размера, что и картинка). При этом console.log(event.target.offsetWidth); выводит правильные данные.
К тому же не могу сделать "margin: 0;" для window_.document.body. Что подскажите?
<section>
		<h1>Galery</h1>
		<div id="galery">
			<div id="wrapper">
				<img src="img\galery\small\P1.JPG" alt="P1.JPG">
				<img src="img\galery\small\P2.JPG" alt="P2.JPG">
				<img src="img\galery\small\P3.JPG" alt="P3.JPG">
			</div>
		</div>
	</section>


'use strict';
		document.addEventListener("DOMContentLoaded", function(event) {
			var imgs = document.getElementById("wrapper").children;
			for(var i=0; i<imgs.length; i++)
				imgs[i].addEventListener("click", imgClickHandler);
		});

		function imgClickHandler(event) {
			var tmpArr = event.target.src.split('/');
			var imgName = tmpArr[tmpArr.length - 1];
			var window_ = window.open('', '', 'width=200, height=200, left=350, top=50, resizable=yes, menubar=yes, toolbar=yes, location=yes');

			// На втором компе это не работает.
			var title = window_.document.createElement("title");
			title.innerText = imgName;
			window_.document.head.appendChild(title);
			window_.document.body.style.margin = 0; // Не работает

			// Это не срабатывает.
			/*var style = window_.document.createElement("style");
			style.innerText = '* { padding: 0; margin: 0; }';
			window_.document.head.appendChild(style);*/

			// И вот это.
			/*var bigImg = window_.document.createElement('img');
			bigImg.src = "img\\galery\\" + imgName;
			bigImg.alt = "img not loaded";
			bigImg.onload = "newWin.print(); newWin.close();";
			window_.document.body.appendChild(bigImg);*/
			window_.document.write('<div><img src="' + 'img\\galery\\' + imgName + '" /></div>');

			var img = window_.document.getElementsByTagName('img')[0];
			img.addEventListener("load", function load(event)	{
			window_.resizeTo(event.target.offsetWidth, event.target.offsetHeight); 
			console.log(event.target.offsetWidth);
		});
		};
  • Вопрос задан
  • 218 просмотров
Пригласить эксперта
Ответы на вопрос 1
ozknemoy
@ozknemoy
яваскриптист
мне думается что window.open второе новое окно а код выполняется в контексте первого
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы