Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.11.2012, 15:27
Новичок на форуме
Отправить личное сообщение для Olek22 Посмотреть профиль Найти все сообщения от Olek22
 
Регистрация: 23.11.2012
Сообщений: 4

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 ничего не вставляется
Ответить с цитированием
  #2 (permalink)  
Старый 23.11.2012, 15:57
Аспирант
Отправить личное сообщение для Sanda Посмотреть профиль Найти все сообщения от Sanda
 
Регистрация: 12.10.2012
Сообщений: 90

Сделай alert(newwin.document.getElementById('b')) и посмотри результат. Насколько я понимаю, окно открывается долго, а скрипт выполняется быстро, и в момент выполнения .innerHTML нужного элемента в данном окне ещё нет.
Ответить с цитированием
  #3 (permalink)  
Старый 23.11.2012, 16:01
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от 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>
Ответить с цитированием
  #4 (permalink)  
Старый 24.11.2012, 12:41
Новичок на форуме
Отправить личное сообщение для Olek22 Посмотреть профиль Найти все сообщения от Olek22
 
Регистрация: 23.11.2012
Сообщений: 4

Спасибо. Идея понятная, но ... не работает. Пробовал именно Ваш код
Ответить с цитированием
  #5 (permalink)  
Старый 24.11.2012, 16:21
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от Olek22
не работает
У меня работало в ИЕ и Опере, пробовал естественно локально... Х/з почему у тебя не работает
Ответить с цитированием
  #6 (permalink)  
Старый 24.11.2012, 18:48
Новичок на форуме
Отправить личное сообщение для Olek22 Посмотреть профиль Найти все сообщения от Olek22
 
Регистрация: 23.11.2012
Сообщений: 4

Да, про IE я не подумал. Еще работает и в Firefox. Оперы дома нет у меня, в понедельник на работе еще там попробую. Остается тогда проблема, почему в Хроме не работает
Ответить с цитированием
  #7 (permalink)  
Старый 25.11.2012, 13:05
Новичок на форуме
Отправить личное сообщение для Olek22 Посмотреть профиль Найти все сообщения от Olek22
 
Регистрация: 23.11.2012
Сообщений: 4

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

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. Как решить для Хрома???
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При нажатии на ссылку раскрываются все div anonimous jQuery 1 09.08.2012 14:49
При прокрутке страницы div залазит на футер. Как поправить? DonaldDrug jQuery 8 27.03.2012 02:15
проблема с div И animate g00000dman jQuery 2 24.03.2011 23:34
Закрытие прозрачного div при щелчке мыши в любой его области mav1 Элементы интерфейса 8 09.02.2011 19:25