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, время: 23:41. |