Показать сообщение отдельно
  #1 (permalink)  
Старый 27.05.2010, 18:00
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Таблица безопасных цветов
Надо написать код, который выводил бы таблицу безопасных цветов на экран. Подумал, написал вот это
draw.createPalette=function(){
	for(var r=0; r<=255; r+=51){
		pNode=document.createElement("table");
		pNode.className="palette";
		document.body.appendChild(pNode);
		for(var g=0; g<=255; g+=51){
			var pTr=document.createElement("tr");
			pNode.appendChild(pTr);
			for(var b=0; b<=255; b+=51){
				var pTd=document.createElement("td");
				pTd.onclick=function(color){return function(){draw.color=color}}(pTd.style.background="#"+r.toString(16)+g.toString(16)+b.toString(16));
				pTr.appendChild(pTd);
			}
		}	
	}
}


Работает только в файерфоксе, и то лишь частично (не все цвета появляются). Тогда я написал так:
draw.createPalette=function(){
	for(var r=0; r<=255; r+=51){
		pNode=document.createElement("table");
		pNode.className="palette";
		document.body.appendChild(pNode);
		for(var g=0; g<=255; g+=51){
			var pTr=document.createElement("tr");
			pNode.appendChild(pTr);
			for(var b=0; b<=255; b+=51){
				var pTd=document.createElement("td");
				pTd.onclick=function(color){return function(){draw.color=color}}(pTd.style.background="rgb("+r+","+g+","+b+")");
				pTr.appendChild(pTd);
			}
		}	
	}
}


Ура! Заработало, но вот сюрприз: IE6 наотрез отказался выводить её на экран. Почему? Вроде смотрел, ни слова про то, что IE6 rgb не поддерживает. В чём фишка?

P.S. Кстати, почему первый код не работает?
P.P.S. Забыл дописать: при клике на каждую ячейку переменной draw.color присваивается значение фона данной ячейки.

Последний раз редактировалось trikadin, 27.05.2010 в 18:05.
Ответить с цитированием