Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Проблема с write. (Opera) (https://javascript.ru/forum/css-html-browser/4255-problema-s-write-opera.html)

bomg 06.07.2009 14:21

Проблема с 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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>'+ <!--кнопка маил-->
'&nbsp;&nbsp;&nbsp;&nbsp; '+
'<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() }

x-yuri 06.07.2009 20:35

document.open, document.close не надо в данном случае
лучше это делать на сервере (php, ssi)
скрипт (часы) можно в отдельный файл вынести

bomg 07.07.2009 11:46

Убрал open и close, но мне бы сделать так чтобы в опере работало =)
Похоже опере ненравиться writeln с длинным текстом внутри себя.

x-yuri 07.07.2009 18:23

php, ssi?

bomg 07.07.2009 19:28

php, ssi я пока не использую =)
Хочу пока изучить яваскрипт ненмого и сделать сайт только на нем.
А потом за остальное приняться =)

x-yuri 07.07.2009 20:53

1) в консоли ошибок что-то пишется?
2) чего ты комметарии из строк вынес?
3) убираешь половину содержимого writeln. Если работает, значит проблема в убранной части. И т.д.

bomg 08.07.2009 00:31

Консоль ошибок в Опере :

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 такое ошушение что как будто опера игнорирует объем текста, буду пробывать.

x-yuri 08.07.2009 01:16

Цитата:

Сообщение от bomg
А поповоду writeln такое ошушение что как будто опера игнорирует объем текста

не может такого быть

Цитата:

Сообщение от bomg
Undefined variable: makeCookie

я почему-то ее тоже в твоем коде не вижу

а разметка вся вставляется?

bomg 08.07.2009 09:59

Сорри я уже немного изменил свой скрипт добавил функцию makeCookie и ещё там.

Странно что нет ошибок которые были раньше, связанные с печатью.
Пока попробую по частям с write потестить для Оперы.


Часовой пояс GMT +3, время: 01:28.