Проблема с write. (Opera)
Доброе время суток.
Создал сайт с таблицой состоящий из двух строк, в первой строке шапка сайта, вторая строка поделена на два столбца один для навигации по сайту, другой столбец для содержимого сайта. Чтобы в каждой страничке не повторялся одинаковый код с шапкой, менюшкой и т.д. я загнал его в скрипт, который печатает с помощью writeln . Вызываю скрипт из отдельного файла в самой страничке. Вопрос: В IE все работает а в Opere скрипт почему то игнорируется, как это можно исправить или подогнать по оперу? Сам скрип : function print_menu() {document.open() document.writeln('<body background=Style/fon.gif OnLoad="show3()" text="" >'+ <!--фон--> '<table width="950" border="0" cellspacing="1" cellpadding="0" align=center >'+ '<tr> <!-- ay no?iea -->'+ '<td colspan=2 align=left valign=MIDDLE height=100 background=Style/1_str.jpg ><br>'+ <!--1ая строка фон--> ' & nbsp; '+ '<a href="javascript: window.external.AddFavorite (window.document.location, window.document.title)"><img src="Style/knopka_mail.jpg" width="31" height="23" border="0"></a>'+ <!--кнопка маил--> ' '+ '<a href="mailto:bomgara@email.ru?subject=S sayta"><img src="Style/knopka_izbr.jpg" width="31" height="23" border="0"></a>'+ <!--кнопка избр--> '</td>'+ '</tr>'+ '<!---------->'+ '<tr> <!-- 2ay no?iea -->'+ '<td width=250 valign=top>'+ ' <table border=0 width=245 >'+ <!--вложеная таблица-2ой строки 1 ст.-> ' <tr>'+ ' <td height=345 background=Style/2_str_1st.jpg align="center" valign="MIDDLE" > <!-- ia?aue noieaao -->'+ <!--фон столбца меню--> ' <br><br><a href=1.html> <img src="Style/knopka_1.jpg" width="112" height="32" border="0"><br><br>'+ ' <a href=1.html> <img src="Style/knopka_1.jpg" width="112" height="32" border="0"><br><br>'+ <!--фоны кнопок--> ' <a href=1.html> <img src="Style/knopka_1.jpg" width="112" height="32" border="0"><br><br>'+ ' <a href=1.html> <img src="Style/knopka_1.jpg" width="112" height="32" border="0"><br><br>'+ ' <a href=1.html> <img src="Style/knopka_1.jpg" width="112" height="32" border="0"><br><br>'+ '</td>'+ '</tr>'+ '<tr>'+ '<td>'+ '<center>'+ '<br> '+ <!---- часы --> ' <script language="javascript" > '+ 'var dn;'+ 'c1=new Image(); c1.src="time/c1.gif";'+ 'c2=new Image(); c2.src="time/c2.gif";'+ 'c3=new Image(); c3.src="time/c3.gif";'+ 'c4=new Image(); c4.src="time/c4.gif";'+ 'c5=new Image(); c5.src="time/c5.gif";'+ 'c6=new Image(); c6.src="time/c6.gif";'+ 'c7=new Image(); c7.src="time/c7.gif";'+ 'c8=new Image(); c8.src="time/c8.gif";'+ 'c9=new Image(); c9.src="time/c9.gif";'+ 'c0=new Image(); c0.src="time/c0.gif";'+ 'cb=new Image(); cb.src="time/cb.gif";'+ 'cam=new Image(); cam.src="time/cam.gif";'+ 'cpm=new Image(); cpm.src="time/cpm.gif";'+ 'function extract(h,m,s,type) '+ '{ if (!document.images) '+ 'return; '+ 'if (h<=9) '+ '{document.images.a.src=cb.src; '+ 'document.images.b.src=eval("c"+h+".src");}; '+ 'else '+ '{document.images.a.src=eval("c"+Math.floor(h/10)+".src"); '+ 'document.images.b.src=eval("c"+(h%10)+".src");}; '+ 'if (m<=9) '+ '{document.images.d.src=c0.src; '+ 'document.images.e.src=eval("c"+m+".src");}; '+ 'else '+ '{document.images.d.src=eval("c"+Math.floor(m/10)+".src"); '+ 'document.images.e.src=eval("c"+(m%10)+".src");}; '+ 'if (s<=9) '+ '{document.g.src=c0.src; '+ 'document.images.h.src=eval("c"+s+".src");}; '+ 'else '+ '{document.images.g.src=eval("c"+Math.floor(s/10)+".src"); '+ 'document.images.h.src=eval("c"+(s%10)+".src");}; '+ 'if (dn=="AM") document.j.src=cam.src; '+ 'else document.images.j.src=cpm.src}; '+ 'function show3() '+ '{if (!document.images) '+ 'return; '+ 'var Digital=new Date(); '+ 'var hours=Digital.getHours(); '+ 'var minutes=Digital.getMinutes(); '+ 'var seconds=Digital.getSeconds(); '+ 'dn="AM"; '+ 'if ((hours>=12)&&(minutes>=1)||(hours>=13)) '+ '{dn="PM"; '+ 'hours=hours-12;}; '+ 'if (hours==0) '+ 'hours=12; '+ 'extract(hours,minutes,seconds,dn); '+ 'setTimeout("show3()",1000)}; '+ ' </script> '+ '<table width="" border="2" cellspacing="0" cellpadding="2" bordercolor="#8B8989">'+ ' <tr><td>'+ '<Img Src="time/cb.gif" Name="a"><Img Src="time/cb.gif" Name="b">'+ '<Img Src="time/colon.gif" Name="c"><Img Src="time/cb.gif" Name="d">'+ '<Img Src="time/cb.gif" Name="e"><Img Src="time/colon.gif" Name="f">'+ '<Img Src="time/cb.gif" Name="g"><Img Src="time/cb.gif" Name="h">'+ '<Img Src="time/cam.gif" Name="j">'+ '</td></tr>'+ '</table>'+ <!--конец часам--> ' <br><br>'+ '<img src="banner.gif" width="181" height="111" border="0"><br><br>'+ '<img src="banner.gif" width="181" height="111" border="0"><br><br>'+ '<img src="banner.gif" width="181" height="111" border="0"><br><br>'+ '</center>'+ '</td>'+ '</tr> '+ '</table>'+ '</td>'+ '<td align=center valign=top background="Style/2_str_2st_fon.gif" >'+ <!--фон второго столбца втрой строки--> '<img src="Style/2_str_2st_wwerh.jpg" width="700" height="100" border="0" >') <!--шапка второгой столбца второй строки--> <!---------------------Eiiao iai?-------------------------------------> document.close() } |
document.open, document.close не надо в данном случае
лучше это делать на сервере (php, ssi) скрипт (часы) можно в отдельный файл вынести |
Убрал open и close, но мне бы сделать так чтобы в опере работало =)
Похоже опере ненравиться writeln с длинным текстом внутри себя. |
php, ssi?
|
php, ssi я пока не использую =)
Хочу пока изучить яваскрипт ненмого и сделать сайт только на нем. А потом за остальное приняться =) |
1) в консоли ошибок что-то пишется?
2) чего ты комметарии из строк вынес? 3) убираешь половину содержимого writeln. Если работает, значит проблема в убранной части. И т.д. |
Консоль ошибок в Опере :
JavaScript - file://localhost/C:/Documents%20and%20Settings/Юрик/Рабочий%20стол/site/index.html Event thread: click Error: name: ReferenceError message: Statement on line 1: Undefined variable: makeCookie Backtrace: Line 1 of function script makeCookie(2) ... stacktrace: n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace' JavaScript - file://localhost/C:/Documents%20and%20Settings/Юрик/Рабочий%20стол/site/index.html Event thread: click Error: name: ReferenceError message: Statement on line 1: Undefined variable: makeCookie Backtrace: Line 1 of function script makeCookie(1) ... stacktrace: n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace' Коментарии попробую в строки занести. А поповоду writeln такое ошушение что как будто опера игнорирует объем текста, буду пробывать. |
Цитата:
Цитата:
а разметка вся вставляется? |
Сорри я уже немного изменил свой скрипт добавил функцию makeCookie и ещё там.
Странно что нет ошибок которые были раньше, связанные с печатью. Пока попробую по частям с write потестить для Оперы. |
Часовой пояс GMT +3, время: 16:54. |