Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Различия в работе для разных браузеров (https://javascript.ru/forum/css-html-internet-explorer/2040-razlichiya-v-rabote-dlya-raznykh-brauzerov.html)

Ichigeki 24.10.2008 21:33

Различия в работе для разных браузеров
 
у меня есть функция

var collapse_or_expand_symb = "+";
var collapse = false;
function ShowNews(capt,tdid,newstxt,shortNews)
   	{
    var td = document.getElementById(tdid);
    var cap = document.getElementById(capt);
    if(collapse) 
    	{//сворачиваем, показывая сокращенынй вариант новости
    	collapse_or_expand_symb = "+";
    	collapse = false;
    	td.innerHTML =  shortNews+"....";
    	}
    else 
    	{//сворачиваем, показывая полный вариант новости
    	collapse_or_expand_symb = "-";
    	collapse = true;
    	td.innerHTML =  newstxt;
    	}
    cap.innerHTML = collapse_or_expand_symb;
	}


работает ТОЛЬКО в IE.

Вопросов два:
1) почему работает тольк в IE?
2) еслть ли какой нибудь источник информации по сабжу? пока что такими источниками для меня являются ращличные статьи в которых делают оговорку что вот такой то кусок кода будет работать только в этом браузере, а для того чтобы он работал в таком то браузере надо сдлать вот так то. Вопрос - каким образом узнать наверняка как реализовать нужную функцию хотя бы для самых распространенных браузеров? Куда надо обращаться(исключая гугль :) )?

З.Ы. я в курсе что я ламер и код у меня такойже, поэтому жду только конструктивной критики и коненчо же помощи :)

twolf 27.10.2008 18:57

вообще-то Ваш код работает.
Потестил в Opera 9.25, Safari, Chrome, FF 2.0.0.9

Ichigeki 27.10.2008 22:12

Цитата:

Сообщение от twolf (Сообщение 7647)
вообще-то Ваш код работает.
Потестил в Opera 9.25, Safari, Chrome, FF 2.0.0.9

спасибо большое за помощь, код действительно заработал после того как в html коде поменял строчку с

<a onClick="ShowNews('capt0','td0','news_full','news_short');"><td id=capt0 align=center width=3%>+</td></a>


на

<td align=center width=3%><a id=capt0  onClick="ShowNews('capt0','td0','news_full','news_short');">+</a></td>


хотя, не помйу почему раньше не работало в фаерфоксе и опере.

P.S. вопрос №2 остается открытым - можете ли посоветовать какой нибудь справочник хороший где все такие тонкости более-менее подробно освещены?

twolf 28.10.2008 13:29

<a><td></td></a>

какие же это тонкости. у вас неправильная вложенность тегов, это основы.

По js учебники посмотреть можно на этом сайте. например хорошая для начала Денни Гудман Библия пользователя.
По HTML и CSS есть хороший ресурс htmlbook.ru Там можно много почерпнуть из статей. И посмотреть какие рекомендуют книги.
Смотрите книги в которых учат верстать современно.
Например,
<td align=center width=3%>
это верстка 98 года. Надо отделять разметку от оформления, т.е. задавать все стили в CSS файле.
- такой вот устаревший код браузеры могут отображать по-разному,
- вес html файла увеличивается.
- и если верстальщик и программист разные люди, то возникнет геморой с представлением данных на странице.

Смотрите книги в которых уделяется внимание различным браузерам, соответствию их стандартам W3C.

Сам уже давно книжек по html+css не читал, читаю блоги и статьи, поэтому конкретную литературу посоветовать не могу.
Скажу лишь что на русском языке достойной литературы очень мало.

Kolyaj 28.10.2008 13:32

Цитата:

Сообщение от twolf
такой вот устаревший код браузеры могут отображать по-разному

Чего же там можно по разному отобразить? Выравнивание по центру, ширина 3%, какие еще варианты?

twolf 28.10.2008 14:02

в зависимости от доктайпа тег align может как поддерживаться так и не поддерживаться. При отсутствии доктайпа браузер переходит в режим совместимости, поэтому на странице можно увидеть совсем не то что мы хотим.
Это что касается данного примера. Я говорю вообще о таком устаревшем коде.
более подробно здесь

Kolyaj 28.10.2008 14:28

Цитата:

Сообщение от twolf
в зависимости от доктайпа тег align может как поддерживаться так и не поддерживаться.

Это стандарты или поддерживают его, или не поддерживают, а браузеры этот параметр у td поддерживают всегда. Я сейчас говорю только про приведенный в топике код.

twolf 28.10.2008 14:42

Цитата:

Сообщение от Kolyaj (Сообщение 7698)
Это стандарты или поддерживают его, или не поддерживают

а я про что писал, или вы хотите сказать что доктайп к стандартам отношения не имеет?
Цитата:

Выравнивание по центру, ширина 3%, какие еще варианты?
выравнивание - согласен. везде пройдет
ширина 3% - правильно сработает только в HTML 3.2

Kolyaj 28.10.2008 14:57

Вы писали
Цитата:

Сообщение от twolf
браузеры могут отображать по-разному

Как это относится к стандартам?

Цитата:

Сообщение от twolf
ширина 3% - правильно сработает только в HTML 3.2

А HTML 3.2 -- это где?

twolf 28.10.2008 15:01

Цитата:

Как это относится к стандартам?
напрямую, смотря какой доктайп для страницы выставлен.
Цитата:

А HTML 3.2 -- это где?
это стандарт такой есть.


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