Крос браузерность! написание сайтов под все браузеры

PHP C/\OH

Новичок
Крос браузерность! написание сайтов под все браузеры

Вот один из простых примеров использование распространённой функции
PHP:
//                             Java-Script
//----------------------------------------------------------------------------------------

// Проверим поддерживатца ли у бразера DOM на должном уровне
var DOM = (document.getElementById || document.all || document.layers);

// Удобное сокращёние (document.getElementById)
// Позволит не задумаватца что писать  document.all или document.getElementById
function element(id)
{
	if (document.getElementById) {
		if (document.getElementById(id)) {	return document.getElementById(id);	}	
		else { alert('ID:'+id+' not found'); return false;}
	}
	else	if (document.all)    { return document.all[id]; }
	else 	{	return false;	}
}

//  Применение (если id несуществует то выдаст сообщение об ошибки) 'ID:'+id+' not found')

element('id_name').innerHTML = 'HTML код';
кто ещё знает какие не будь примеры для написание крос браузерных Java скриптов? или какие небудь другии особенности браузеров
 

kruglov

Новичок
PHP C/\OH
Поздновато спохватились. Тот браузер (MSIE 4), у которого else наступит, днем с огнем не найти.
 

PHP C/\OH

Новичок
http://www.kruglov.ru/articles/crossbrowserdhtml/ отличная статья

а что вы народ, используете для стабильной работы сприптов?

-~{}~ 24.04.06 19:01:

после прочтение статьи, хотел задать огромный вопрос:
Кто небудь использует Netscape 4 или он уже устарел?
 

Фанат

oncle terrible
Команда форума
зайди на ли ру или мейл ру, да посмотри статистику по браузерам.
 

PHP C/\OH

Новичок
PHP:
		var id = (id)?id:Date().getTime();
		var span = null;
		var file = 'script.js';

		// fix Opera >= 7.23
		// Содаём тег <s cript с id, для того чтобы получить данные, а в последсви удалить =)
		span = document.body.appendChild(document.createElement("SPAN"));
		span.innerHTML = 'text =) <s'+'cript  language="javas'+'cript" type="text/javas'+'cript" id="javasid_' + id + '"></' + 'script>';
		span.style.display = 'none';

		// Создадим атрибут ID для того чтобы в последствии удалить, и не захломлять HTML
		if (span.setAttribute)
		{
			span.setAttribute('id', "spanid_" + id);
		}
		else{span.id = "spanssid_" + id;}
		// Через промежуток времени у атребуд скрипта 
		// будет добавлен адрес подгрузки скрипта
		setTimeout(function()
		{
			var scripts = element("javasid_" + id);
			if (scripts.setAttribute)	scripts.setAttribute('src', file); else scripts.src = file;
			debug('javascript_ajax: include script src:'+scripts.src);
		}, 10);
у меня возникла проблема в опере 7.11 при создание атрибута src несоздаётца.. в чём причина непойму в aler(scripts.src) пишет "warning"

PHP:
if (scripts.setAttribute)	
scripts.setAttribute('src', file);
else scripts.src = file;
 

kruglov

Новичок
> span.innerHTML = 'text =) <s'+'cript language="javas'+'cript" type="text/javas'+'cript" id="javasid_' + id + '"></' + 'script>';

'+' тут везде лишние, кроме последнего

> у меня возникла проблема в опере 7.11
Некрофилия - грех.

-~{}~ 25.04.06 10:21:

p.s. scripts.src работает во всех, даже самых новых браузерах. Это и есть кроссбраузерное решение. А setAttribute в данном случае - нафиг.
 

PHP C/\OH

Новичок
в наннный момент пищу скрипты админки, на какие браузеры я должен арентироваца (Версия и имя браузеров), а на какие забить

PS. чтобы не занимать некрофилией ;-))

-~{}~ 25.04.06 17:47:

http://www.kruglov.ru/articles/crossbrowserdhtml/
статья устарела, пытался применить оказалось паловина неработает, так как там очёнь старые браузеры...
 

kruglov

Новичок
PHP C/OH
Ну, там внизу дата стоит...
А к примеру, что не работает?
Вроде должно нормально работать...
 

PHP C/\OH

Новичок
ну в основном определения размеров рабочего пространство, и тд.

ТУТ ещё поевилась проблема с IE 6.0 SP2, во всёх других работает
PHP:
function muv(id, type, start_y, stop_y)
{
	if (type == 'd')
	{
		if(start_y < stop_y)
		{
			top = element_style(id).top
			evement_top =  Number(top.substring(0, top.length-2)) + 3;
			start_y = start_y + 3;
			element_style(id).top = evement_top + 'px';

			// ЭТО часть в IE 6 у меня не работает...пишет не поддерживается
			setTimeout('muv('+id+', "d", '+start_y+', '+stop_y+')', 50);
		}
		else return;
	}
}
пробовал даже так....
setTimeout('muv()', 50);
IE пишет не поддерживается... глупость... В FFox и Opera работает...
незнаю в чём проблема
 

alexhemp

Новичок
PHP C/OH

Для админки - достаточно ориентироваться на два браузера - Internet Explorer 6 и FireFox 1.5 и выше.
 

PHP C/\OH

Новичок
alexhemp
ок спасибо , но пока получаестца даже наже IE5+, Ffox+, Opara 7.23

только вот в IE столкнулся с проблемой, в setTimeout листинг кода идёт выши, это функция заставляет слой плавно опуститца до определённой точки, выглидит отлично, и без setTimeout плавный спуск слоя неполучитца.........

счас пишу Java Срипты , для Фрейм-ворк, чтобы съэмитировать простую работу с окнами как Windows

-~{}~ 26.04.06 02:07:

Проблема решена top переименовал в tops и всё заработало... новерно уже зарезервированная переменная top
 

Invizz

Новичок
PHP C/OH
мужик выучи русский уже.


А по теме:
FF1.5
Opera 7,5
IE6 - на остальное забиваю, как и в вёрстке.
 

alexhemp

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

kruglov

Новичок
alexhemp
В 9-ом обещают.
И я его уже видел (бета на www.opera.com лежит), но глючный (пока?), зараза.
 

PHP C/\OH

Новичок
У меня возникла проблема с отправкой в Опере 8, AJAX'om POST запроса, он просто неидёт, кто небудь сталкивалсы с такой штукой...? GET отлично работает.
в прототипе тоже самое.....
 
Сверху