Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   window.open и вставка в div (https://javascript.ru/forum/events/33443-window-open-i-vstavka-v-div.html)

Olek22 23.11.2012 15:27

window.open и вставка в div
 
На странице есть ссылка:
<a href="#" onclick="а(1)"></a>
Требуется открыть в новом окне html-шаблон вида:
<header>...</header>
<nav>...</nav>
<div id='b'></div>
и вложить в div документ text/1.html
Пишу скрипт:
function a(c) {newwin=window.open('shablon.html',' ',' ');
newwin.document.getElementById('b').innerHTML='<em bed src="text/'+c+'.html"></embed>';}
Шаблон открывается, но в div ничего не вставляется

Sanda 23.11.2012 15:57

Сделай alert(newwin.document.getElementById('b')) и посмотри результат. Насколько я понимаю, окно открывается долго, а скрипт выполняется быстро, и в момент выполнения .innerHTML нужного элемента в данном окне ещё нет.

ksa 23.11.2012 16:01

Цитата:

Сообщение от Olek22
Шаблон открывается, но в div ничего не вставляется

Просто документ не успевает сформироваться... :)

tmp.html
<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function test(c) {
	var newwin=window.open('tmp1.html','test');
	setTimeout(function () {
		wrt(newwin);
	},1);
}
function wrt(oWin) {
	var o=oWin.document.getElementById('b');
	if (o) {
		o.innerHTML='<p>test</p>';
		return;
	}
	setTimeout(function () {
		wrt(oWin);
	},1);
}
</script>
</head>
<body>
<a href="#" onclick="test(1)">Open</a>
</body>
</html>


tmp1.html
<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
</script>
</head>
<body>
<div id='b'></div>
</body>
</html>

Olek22 24.11.2012 12:41

Спасибо. Идея понятная, но ... не работает. Пробовал именно Ваш код

ksa 24.11.2012 16:21

Цитата:

Сообщение от Olek22
не работает

У меня работало в ИЕ и Опере, пробовал естественно локально... Х/з почему у тебя не работает

Olek22 24.11.2012 18:48

Да, про IE я не подумал. Еще работает и в Firefox. Оперы дома нет у меня, в понедельник на работе еще там попробую. Остается тогда проблема, почему в Хроме не работает

Olek22 25.11.2012 13:05

Попробовал решить проблему другим путем - прочитать параметр из дочернего окна:

test.html
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function test() {
var newwin=window.open('tmp2.html','text');
}
</script>
</head>
<body>
<a href="tmp2.html" target="_blank" id="t" name="4">Open</a>
</body>
</html>

tmp2.html
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function textwin() {
itext=window.opener.document.getElementById('t').n ame;
document.getElementById('b').innerHTML='<p>Test OK! name='+itext+'</p>';
}
</script>
</head>
<body onload=textwin()>
<div id='b'></div>
</body>
</html>

Работает в Firefox и IE, не работает в Chrome. Как решить для Хрома???


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