Помогите! Почему в Opera js-код работает с ошибкой. В IE все нормально.
Спецы JS помогите разобраться в чем проблема!
На странице есть ссылка, вида: <a href="javascript:void(0)" onclick="print_kvitok(); return false;" target="_self">Открыть для печати в новом окне</a>. Функция , которая вызывается по клику: function print_kvitok(){ kvit = window.open("","kvitokwin", "fullscreen=no,status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=yes,resizable=yes,directories=no,location=no,width=710,height=600"); with (kvit.document) { kvitan=document.getElementById('kvitok').innerHTML; open('text/html'); writeln('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'); writeln('<html xmlns="http://www.w3.org/1999/xhtml">'); writeln('<html>'); writeln('<head>'); writeln('<title>Банковский перевод</title>'); writeln('<link rel="stylesheet" href="/style.css">'); writeln('</head>'); writeln('<style type="text/css">'); writeln('H1 {font-size: 12pt;}'); writeln('p, ul, ol, h1 {margin-top:6px; margin-bottom:6px}'); writeln('td {font-size: 9pt;}'); writeln('small {font-size: 7pt;}'); writeln('body {font-size: 10pt;}'); writeln('</style>'); writeln('<body style="margin:2px;" marginheight=0 marginwidth=0 bgcolor="#ffffff" link="black" vlink="#a0a0a0" alink="#fa0055">'); writeln('<table align="center" width="90%" cellspacing="2" cellpadding="2" border="0"><tr>'); writeln('<td valign="top" height="90%" colspan="2">'); writeln(kvitan); writeln('</td></tr>'); writeln('<tr><td align="right"><a href="javascript:void(0)" onClick="window.close()">Закрыть окно</a> </td>'); writeln('<td align="left"> <a href="javascript:void(0)" onClick="window.print(); return false">Печать квитанции</a></td></tr></table>'); writeln('</body>'); writeln('</html>'); close(); }} Открывается новое окно в котором должна появиться квитанция. На самой HTML странице есть DIV: <div id=kvitok..., в котором заключен HTML-код самой квитанции. В IE все работает отлично - открывается новое окно, в нем выводится квитанция. В Opera окно новое открывется, но оно совершенно пустое. В Error Console Оперы следующее сообщение. JavaScript - [url]http://www.hs-market.ru/index.php/shop?page=account.order_details&order_id=6&vmcchk=1[/url] Event thread: click Error: name: TypeError message: Statement on line 6: Cannot convert undefined or null to Object Backtrace: Line 6 of inline#4 script in [url]http://www.hs-market.ru/index.php/shop?page=account.order_details&order_id=6&vmcchk=1:[/url] In function print_kvitok var kvitan=document.getElementById('kvitok').innerHTML; Что не правильно в коде? Помогите разобраться. |
ну так вынеси эту строку из with
|
Спасибо, ZoNT! :) Все заработало!
|
Цитата:
|
вынести - значит убрать из with и (в данном случае) написать перед with.
Почему? Потому что: var kvitan=document.getElementById('kvitok').innerHTML ; Мы обращаемся к document, а в with определён kvit.document, то есть фактически мы пытаемся обратится к kvit.document.document.getElementById('kvitok').in nerHTML |
Часовой пояс GMT +3, время: 18:02. |