Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Я им как-то написал в поддержку по поводу их кривой верстки, из-за которой в Firefox 2 местами происходят колоссальные глюки. Ответили в том смысле, что "используйте современные браузеры типа IE8"! Пришлось сделать свой стиль.
Это ясно, но IE 6 для них тоже "современней", чем FF 2, потому что им пользуется большее количество современных дятлов юзеров.
Лично мне похер, я-то на любой сайт могу натянуть свой user.css, и все будет выглядеть, как я хочу.
Но такие глюки я видел только на mail.ru, и это в наше время, а я помню как ентот мейл только запускался...
Если избавиться от символа процента в каждой строке (а добавлять его когда надо),
все заровнять в одну строку с помошью yuicompressor
m01['_']='%5F';
//itd
Char2Hex=m01;
- уже будет хорошо, уменьшит траф на сотенку байт;
Однако есть и хорошие свойства у етого говнокода:
1. он не делает утечки памяти (если когда надо сделать delete Char2Hex)
2. если сравнить с уникодом - то етот мап держит лишь то что надо. Обидно правда за украинские буквы, жестоко их отсеяли.
Вот как велосипежу я. Заменяем encodeURIComponent() на самопал, который экранирует данные в CP1251, а не входящие в кодировку символы заменяет десятичными HTML-сущностями (подобно тому, как это делает браузер при отправке формы).
var
encodeURIComponentUTF8 = encodeURIComponent;
(function()
{
var
cp1251codetable = "0402,0403,201A,0453,201E,2026,2020,2021,20AC,2030,0409,2039,040A,040C,040B,040F,0452,2018,2019,201C,201D,2022,2013,2014,,2122,0459,203A,045A,045C,045B,045F,,040E,045E,0408,,0490,,,0401,,0404,,,,,0407,,,0406,0456,0491,,,,0451,2116,0454,,0458,0405,0455,0457".split(",");
encodeURIComponent = function(str)
{
return escape(str).replace(/\+/g, '%2B').replace(/\%u([0-9A-F]{4})/gi, function(a, b)
{
var i = parseInt(b, 16), k;
if (i >= 1040 && i <= 1103)
{
i -= 848;
}
else if ((k = $.inArray(b, cp1251codetable)) > -1)
{
i = k + 128;
}
return (i < 256)
? "%" + i.toString(16).toUpperCase()
: "%26%23" + i + "%3B";
});
}
})();
Знаю, что не особо оптимально, потом допилю пару мелочей.
Mail говношкодит!
см. верстку, ну например Папки, Входящие, Сомнительные....
Это же просто убиться, я не говорю уж про таблицы
Лично мне похер, я-то на любой сайт могу натянуть свой user.css, и все будет выглядеть, как я хочу.
Но такие глюки я видел только на mail.ru, и это в наше время, а я помню как ентот мейл только запускался...
Пользователи IE6 не всегда дятлы. Полиси некоторых банков до сих пор официально поддерживают лишь IE6. Не взирая на просьбы MS свичнуться на IE8.
Мне за державу обидно!
все заровнять в одну строку с помошью yuicompressor
m01['_']='%5F';
//itd
Char2Hex=m01;
- уже будет хорошо, уменьшит траф на сотенку байт;
Однако есть и хорошие свойства у етого говнокода:
1. он не делает утечки памяти (если когда надо сделать delete Char2Hex)
2. если сравнить с уникодом - то етот мап держит лишь то что надо. Обидно правда за украинские буквы, жестоко их отсеяли.
Замечу, никаких for-ов, никаких string concatenations, просто заполнение мапы as is
Знаю, что не особо оптимально, потом допилю пару мелочей.
var str = 'Hello, world!', hexstr = '';
for (var i=0;i<str.length;i++) {
hexstr += '%'+str.charCodeAt(i).toString(16);
}