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 ничего не вставляется |
Сделай alert(newwin.document.getElementById('b')) и посмотри результат. Насколько я понимаю, окно открывается долго, а скрипт выполняется быстро, и в момент выполнения .innerHTML нужного элемента в данном окне ещё нет.
|
Цитата:
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> |
Спасибо. Идея понятная, но ... не работает. Пробовал именно Ваш код
|
Цитата:
|
Да, про IE я не подумал. Еще работает и в Firefox. Оперы дома нет у меня, в понедельник на работе еще там попробую. Остается тогда проблема, почему в Хроме не работает
|
Попробовал решить проблему другим путем - прочитать параметр из дочернего окна:
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, время: 09:55. |