LINUX.ORG.RU

[javascript] [ie6] не взлетело

 


0

1
var boxes = document.getElementsByName('product');
for(var x=0; x<boxes.length; x++) {
	boxes[x].style.display = 'none';
}

Пацанские бровзеры всё правильно делают.
А почему в IE6 такой код не заработал? Как его сделать рабочим?

★★★★★
Ответ на: комментарий от anthill

У заказчика IE6, пытался ему уже поставить нормальный браузер, но ни в какую. Всё проверяет в осле.

Сейчас сделал такой костыль:
script.js:

$(document).ready(function(){
	/* This code is executed after the DOM has been completely loaded */

	/*var boxes = document.getElementsByName('product');
	for(var x=0; x<boxes.length; x++) {
		boxes[x].style.display = 'none';
	}*/
	
	document.getElementById('jswarning').style.display = 'none';

...
index.html:
...

			<div id="jswarning">
				<h3>Пожалуйста, включите JavaScript в настройках вашего браузера.</h3>
				<div class="line"></div>
			</div>
						
			<div name="product" id="p1" style="display:none;">
				<h3>Продукт 1</h3>
				<p>Информация об этой модели появится здесь в ближайшее время.</p>
				<div class="line"></div>
			</div>

			<div name="product" id="p2" style="display:none;">
				<h3>Продукт 2</h3>
				<p>Информация об этой модели появится здесь в ближайшее время.</p>
				<div class="line"></div>
			</div>

			<div name="product" id="p3" style="display:none;">
				<h3>Продукт 3</h3>
				<p>Информация об этой модели появится здесь в ближайшее время.</p>
				<div class="line"></div>
			</div>

			<div name="product" id="p4" style="display:none;">
				<h3>Продукт 4</h3>
				<p>Информация об этой модели появится здесь в ближайшее время.</p>
				<div class="line"></div>
			</div>

...


Но хотелось бы, чтобы без дурацкого js показывалось не предупреждение, а все блоки (p1, p2, p3, p4). Закомментированный скрипт всё правильно делает, но не работает в IE6. Печаль :(

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от anthill

От него там маленький кусок для скроллинга. Лишние jq функции тащить не хочу, ибо это на скорость загрузки страницы повлияет негативно.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от CYB3R

Ты ж его упомянул.

Обходи руками :)

Deleted
()

Как вариант, раз стоит jQuery, присвоить не id для элементов, а классы и отключать уже класс. Либо использовать список id: $(«#id1», «#id2», «#idN»).
Если jquery не стоит, то прикрутить его

minakov ★★★★★
()

поговори с заказчиком. Я щас свой сайт проверял (совсем примитивный, но html5+css3), так вот оно даже в firefox2 работает. В то же время ie7 всё уродует. Нах эти эксплохеры.

И вообще скажи что даже гугл отказался от такого старья, это весомый аргумент.

true_admin ★★★★★
()
Ответ на: комментарий от CYB3R

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

Оно один раз загрузится, а потом будет браться из кеша. Да и что у тебя за страница такая, что маленькая джейкверя хоть как-то заметно повлияет на скорость загрузки страницы?

В нынешние времена, чтобы писать на голом js, надо иметь особую, значительную причину.

Wizard_ ★★★★★
()

Вы шо, охерели?! НА ВИНФАК!!!1

CLU
()
Ответ на: комментарий от CYB3R

От него там маленький кусок для скроллинга. Лишние jq функции тащить не хочу

Да, кстати, а как ты при таком знании джаваскрипта умудрился саму библиотеку jQuery порезать? Или ты не понимаешь, о чём идёт речь? То, что тебе нужно, есть в самой библиотеке без лишних плагинов.

Wizard_ ★★★★★
()
Ответ на: комментарий от CYB3R

У заказчика IE6, пытался ему уже поставить нормальный браузер, но ни в какую. Всё проверяет в осле.

Препод с шиндовс хр?

anonymous
()
Ответ на: комментарий от anthill

Сейчас сделал наоборот. Вроде бы везде работает.

	var products=["ps10","ps20","ps30","ps40"];
	for(var i=0; i<products.length; i++) {
		document.getElementById(products[i]).style.display = 'none';
	}
Вот мой кусок jQuery, кстати. Резал не я, взял готовое.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от Wizard_

Резал не я. Только что дал ссылку на порезанный js, но там всё прогнано через какой-то вебовый обфускатор, чтобы грузилось быстрее.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от CYB3R

а не легче ли заменить на полноценный jquery вместо того чтобы ныть о надуманной проблеме?

anonymous
()
Ответ на: комментарий от CYB3R

А, я понял - это вебинтерфейс к той бумажной фабрике, которой нужен маааленький всплеск или задержка электроэнергии для того, чтобы все отвалилось? Тогда да, все правильно, если управление к ней идет через dial-up и лишние 30кб критичны

minakov ★★★★★
()
Ответ на: комментарий от CYB3R

У меня для тебя новость. Это плагин к jQuery который сам по себе работать не будет.

anthill
()
Ответ на: комментарий от true_admin

помоему даже вконтакт отказался же, но судя по постам опа такой клинике лекарств не хватит

trashymichael ★★★
()
Ответ на: комментарий от true_admin

И вообще скажи что даже гугл отказался от такого старья,

Какой гугл, сам Mircosoft отказался и всех призывает отказаться.

pi11 ★★★★★
()
Ответ на: комментарий от pi11

Специально поставил же.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от pi11

сам Mircosoft отказался и всех призывает отказаться

Да что там майкрософт, нашли идола, даже я отказался и всех активно призываю отказываться!

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от CYB3R

даже я отказался и всех активно призываю отказываться!

видимо недостаточно активно.
Скажи заказчику прямо - ты придурок. И больше не звони мне. =)

pi11 ★★★★★
()
Ответ на: комментарий от qnikst

поэтому проще добавить строку для ~35кб jquery, составить список классов и идентификаторов и ловить их, если ie6 так критичен. К тому же на ноуте с семеркой он тормозить не будет однозначно

minakov ★★★★★
()
Ответ на: комментарий от minakov

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

qnikst ★★★★★
()
Ответ на: комментарий от CYB3R

Браузер, естественно, тоже заказывал у M$ с персональным набором функционала и ревизией кода под valgrind, а потом и руками, силами еще одной конторы под жутчайшим NDA? А то ведь дефолтный тормозит же.

GateKeeper ★★
()
Ответ на: комментарий от tensai_cirno

Специально установленный IE6 для тестирования сайта. Но, что интересно, для браузинга он использует IE7 (аргументируя это тем, что шестая версия устарела, а восьмая нестабильна). Пытался навязать ему огнелис или хотя бы хром. Не вышло :(

CYB3R ★★★★★
() автор топика

Это что же за заказчик такой? BDSM-извращенец?

Eddy_Em ☆☆☆☆☆
()
27 июня 2012 г.
Ответ на: комментарий от anonymous

опера не руленг, на венде флеш в хроме быстрее чем в опере, а про линукс я молчу

bhfq ★★★★★
()
Ответ на: комментарий от CYB3R

шестая версия устарела, а восьмая нестабильна

debian stable тогда вообще bleeding edge чтоли?

KennyMinigun ★★★★★
()
Ответ на: комментарий от tensai_cirno

А заказчик - мудак. Так и передай, что от меня.

Инкрементирую.

<!--[if lt IE 9]>
<script language="javascript" type="text/javascript">
alert(
    "You're using some ugly browser, that is not supported in civilized world."
    + " See http://natribu.org/ for details."
);
window.location = "http://natribu.org/";
</script>
<![endif]-->
KennyMinigun ★★★★★
()
Ответ на: комментарий от CYB3R

document.getElementById('jswarning').style.display = 'none';

<noscript> блин.

И почитай про тёги. А потом лезь обратно в криокамеру.

Kalashnikov ★★★
()
Ответ на: комментарий от CYB3R

Или я что-то не понимаю, или ты пытаешься сделать много лишних телодвижений. Если я правильно понял, то тебе нужно так, как я тут реализовал.

Пример для Ъ:

<body class="nojs"><script>(function(){var b=document.body;b.className=b.className.replace('nojs','')})()</script></body>

А дальше вешаешь разные стили на элеменеты, которые нужно показывать/скрывать если js отключен.

.nojs p.bla-bla {
    display: none;
}

p.bla-bla {
   display: block;
}
Boba_Fett
()
Ответ на: комментарий от CYB3R

Блеать, в ie6 сейчас реально ничего нормально не работает, включая всякие гуглы...

anonymous
()
Ответ на: комментарий от CYB3R

Нет, крутой дядя, со здоровенным ноутом с семёрочкой.

[javascript] [ie6] не взлетело

гдето здесь закралось 4.2

в 7ке по умолчанию IE8

ZuBB ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.