- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
<!DOCTYPE html>
<html>
<head>
<!--[if lt IE 10]>
<script>
location.href = "http://www.getfirefox.com";
</script>
<![endif]-->
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+171
<!DOCTYPE html>
<html>
<head>
<!--[if lt IE 10]>
<script>
location.href = "http://www.getfirefox.com";
</script>
<![endif]-->
IE == 'НЕНАВИСТЬ!!!11'
+157
function processGetPost() {
var myajax=ajaxpack.ajaxobj;
var myfiletype=ajaxpack.filetype;
if (myajax.readyState == 4) {
if (myajax.status==200 || window.location.href.indexOf("http")==-1) {
if (myfiletype=="txt") {}
else {
var resp = myajax.responseXML;
var xmlRoot = resp.documentElement;
dateArray = xmlRoot.getElementsByTagName("putdate");
userArray = xmlRoot.getElementsByTagName("name");
var html = "<table border='1'><tr><th>Время входа</th>";
html += "<th>Имя пользователя</th></tr>";
var conlines = dateArray.length;
if (conlines) {
for (var i=0; i<conlines; i++) {
html += "<tr>";
html += "<td>"+dateArray.item(i).firstChild.data+"</td>";
html += "<td>"+userArray.item(i).firstChild.data+"</td>";
html += "</tr>";
}
}
html += "</table>";
myDiv = document.getElementById("onlines");
myDiv.innerHTML = html;
}
timerID = setTimeout("ajaxpack.getAjaxRequest('active_users.php','',processGetPost,'xml');", 5000);
}
}
}
Мой говнокод 4-х летней давности, но воняет до сих пор. 6-ая строчка особенно убивает.
+157
$('.tariffs').click(function(){$('#tabs').tabs( 'select' , 1 ); top.scrollTo(0,0); return false;});
$('.tarifffs').click(function(){$('#tabs').tabs( 'select' , 2 ); top.scrollTo(0,0); return false;});
$('.testdrive').click(function(){$('#tabs').tabs( 'select' , 3 ); top.scrollTo(0,0); return false;});
$('.faq').click(function(){$('#tabs').tabs( 'select' , 5 ); top.scrollTo(0,0); return false;});
$('.zakaz').click(function(){$('#tabs').tabs( 'select' , 3 ); top.scrollTo(0,0); return false;});
$('.vfaq').click(function(){$('#tabs').tabs( 'select' , 4 ); top.scrollTo(0,0); return false;});
$('.solution').click(function(){$('#tabs').tabs( 'select' , 1 ); top.scrollTo(0,0); return false;});
Сайт Петерстара для верности дважды подключает jQuery разных версий и сверкает говнокодом: см. строки 56-62 HTML-кода —
http://twitter.com/pepelsbey/statuses/12677274499293184
+163
$('div').each(function (i) {
if(i==0)$(this).css('display', 'none');
else
for(j=0;j<=1;j++)break;
});
Вместо $("div:first").hide();
+160
// create folder element
var itm = $('<li class="DocListItem TypeFolder hover" style="display:none;">
<div class="ItemInfo"><span class="itmFolder">Папка</span></div>
<a rel="'+result.data.id+'" class="ItemLink" href="'+$('#currentFolderId').attr('href')+result.data.name+'/">'+result.data.name+'</a>
</li>');
// bind handlers
itm = DocumentsListItemHoverBind(itm.click(DocumentsListItemClick).dblclick(OpenSelectedObject)).find('.ItemLink:first').click(OpenSelectedObject).parent();
// display
itm.insertAfter('#documentsList .UpLevelItem:first').fadeIn('slow');
Сок, конечно же, в bind handlers.
+145
function parseHTML(text)
{
var t = text;
var a = new Array();
var b = new Array();
var cur = 0;
var waiting_open_tag = true;
var last_cut = 0;
for (var i = 0; i < t.length; i++)
{
cur = t.charAt(i);
if (waiting_open_tag)
{
if (cur == '<')
{
a.push(t.substring(last_cut, i));
waiting_open_tag = false;
last_cut = i;
}
}
else
{
if (cur == '>')
{
a.push(t.substring(last_cut, i+1));
waiting_open_tag = true;
last_cut = i+1;
}
}
if (i == t.length-1)
{
a.push(t.substring(last_cut, i+1));
}
}
// now reparse DOT"."
for (i = 0; i < a.length; i++)
{
y = a[i];
last_cut = 0;
for (z = 0; z < y.length; z++)
{
cur = y.charAt(z);
if (z == 0)
{
if ((cur == '<') || (cur == '&') || (cur == '\n'))
{
z = y.length + 981;
b.push(y.substring(last_cut, z+1));
continue;
}
}
if (cur == '.')
{
b.push(y.substring(last_cut, z+1));
last_cut = z+1;
}
if (z == y.length-1)
{
b.push(y.substring(last_cut, z+1));
}
}
}
return b;
}
Эта функция разбивает строку на элементы массива. Граница разделения - это HTML tags ( < >) и точка (.)
Функция сделана для подготовки текста к автоматическому переводу в Гугле - кто работал тот знает что запихнув большую строку ничего не получите.
Я уже знаю ваши сопливые комментарии: RegExp. Собственно по этому это можно считать говнокодом ибо изобретен велосипед (но такого велосипеда в интернете нет). Ну а кто не Noob, прошу предоставить рабочий RegExp.
+161
$(document).ready(function () {
$("#GridView1 INPUT[type='checkbox']").click(
function () {
var colIndex = $(this).parent().parent().prevAll().length;
$('.' + $(this).parent().attr("class") + ' input[type="checkbox"]').each(function () {
if ($(this).parent().parent().prevAll().length == colIndex)
$(this).attr('checked', false);
});
$(this).attr('checked', true);
});
});
взаимоисключающие чекбоксы в колонках таблицы
+147
var n = Math.abs(((date2 - date1) / 86400000) + 1);
var frac = n - Math.floor(n);
if (frac > 0.5) {
n = Math.ceil(n);
} else if (frac < 0.5 && frac.toPrecision(2) != 0) {
n = Math.floor(n);
n--;
}
n++;
Мой говнокод.
Задача: найти количество дней между двумя датами, включая сами эти даты. Время в датах сброшено в 0
Фишка в том "(date2 - date1) / 86400000) + 1", не работает когда есть перевод часов между двумя датами.
И вот такое говно я написал, которое по некоторым дням НЕ РАБОТАЕТ.
переписал вот так:
var n = Math.abs(date2 - date1);
n /= 3600000;
var mod = n % 24;
if (mod == 23) {
n++;
} else if (mod == 1) {
n--;
}
n /= 24;
n++;
теперь не важно сколько переводов часов прошло между датами: 0, 1, 2 или 5.
По поводу говнокода:
За такой frac на авторе надо зарабатывать фраг!
Oleg_quadro: автор, убей себя головой о клаву:
Oleg_quadro: "vb fgrbfvgr bgfvrt rtuijnikjikni56trg5rt6g45t6rgyh hnjunh ujuuuuuuuuuuuuuuuuuuuy"
+163
function GetPath(path){
return path;
}
Коротко и ясно! Единственный метод в модуле.
+160
TINY.accordion=function(){
function slider(n){this.n=n; this.a=[]}
slider.prototype.init=function(t,e,m,o,k){
var a=T$(t), i=s=0, n=a.childNodes, l=n.length; this.s=k||0; this.m=m||0;
for(i;i<l;i++){
var v=n[i];
if(v.nodeType!=3){
this.a[s]={}; this.a[s].h=h=T$$(e,v)[0]; this.a[s].c=c=T$$('div',v)[0]; h.onclick=new Function(this.n+'.pr(0,'+s+')');
if(o==s){h.className=this.s; c.style.height='auto'; c.d=1}else{c.style.height=0; c.d=-1} s++
}
}
this.l=s
};
slider.prototype.pr=function(f,d){
for(var i=0;i<this.l;i++){
var h=this.a[i].h, c=this.a[i].c, k=c.style.height; k=k=='auto'?1:parseInt(k); clearInterval(c.t);
if((k!=1&&c.d==-1)&&(f==1||i==d)){
c.style.height=''; c.m=c.offsetHeight; c.style.height=k+'px'; c.d=1; h.className=this.s; su(c,1)
}else if(k>0&&(f==-1||this.m||i==d)){
c.d=-1; h.className=''; su(c,-1)
}
}
};
function su(c){c.t=setInterval(function(){sl(c)},20)};
function sl(c){
var h=c.offsetHeight, d=c.d==1?c.m-h:h; c.style.height=h+(Math.ceil(d/5)*c.d)+'px';
c.style.opacity=h/c.m; c.style.filter='alpha(opacity='+h*100/c.m+')';
if((c.d==1&&h>=c.m)||(c.d!=1&&h==1)){if(c.d==1){c.style.height='auto'} clearInterval(c.t)}
};
return{slider:slider}
}();
http://installauto.ru/ajax/script.js
чья-то реализация аккордиона. и почему же оно хреново в ИЕ пашет?