вторник, 28 апреля 2009 г.

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

пятница, 17 апреля 2009 г.

Javascript функция рекурсивного обхода DOM

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

function resetinputs(node) {
var oNode = node;
if (!oNode.length) {
try {
if (oNode.tagName == "IMG" || oNode.tagName == "MAP" || oNode.tagName == "AREA") { alert(oNode.tagName + "-|-" + oNode.id); };
if (oNode.Id == "ChartArea1") { oNode.style.opacity = ".5"; };
}
catch (dfr) { };
var curch = oNode;
try {
curch.onmouseup = function(evnt) {
var n = 1;
alert(this.tagName + " -|- " + this.id);
var z = 25;
};
} catch (eval) { };
if (oNode.childNodes) {
curch = oNode.childNodes;
for (var n = 0; n < curch.length; n++) resetinputs(curch[n]);
}
}
else {
curch = oNode.childNodes;
for (var i = 0; i < curch.length; i++) { resetinputs(curch[i]) };
}
return 1;
}

События Javascript на прозрачных элементах в IE 7 (Internet Explorer 7)

Мерзкий, гадкий, подлый осёл не дает перехватывать события на элементах страницы для которых стоит свойство background-color:transparent. У меня ушло немеряно времени что-бы отучить его от этого поведения, и заставить поймать мое событие.

Хак:

//Panel - это мой div
//Проверяем, действительно ли это IE7
if((document.all && !window.opera && window.XMLHttpRequest) ? true : false) {
//Делаем его мой див непрозрачным, ибо только непрозрачные контролы ловят события.
Panel.style.backgroundColor = "gray";
//И делаем его прозрачным снова.
Panel.style.filter = "alpha(opacity = 0)";
}


Но у этого решения есть серьезный недостаток. Все вложенные элементы тоже становятся прозрачными!!! Хак приведенный ниже работает без этого недостатка:

/*IE HACK. It takes more than 40 hours for me.*/
if((document.all && !window.opera && window.XMLHttpRequest) ? true : false) {
Panel.style.background = "url(bogus)";
}


Это решение найдено здесь

воскресенье, 5 апреля 2009 г.

Продолжаю скрещивать Semantic Web и ASP.Net MVC...

пятница, 3 апреля 2009 г.

Очень тяжело вникать в суть онтологий.. Мозг клинит. Как надо парсить случайные RDF данные?

четверг, 2 апреля 2009 г.

Programmer: an organism that turns coffee into software