Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   punto switcher на js )) (https://forum.antichat.xyz/showthread.php?t=124624)

Дикс 10.06.2009 22:22

punto switcher на js ))
 
PHP код:

function revert(id)
{
    if(
typeof(window.originals[id]) != 'undefined' && window.originals[id] !== null)
        
document.getElementById(id).innerHTML window.originals[id];
}

function 
convert(id)
{

    
charsArray = {
        
'Q':'Й',
        
'W':'Ц',
        
'E':'У',
        
'R':'К',
        
'T':'Е',
        
'Y':'Н',
        
'U':'Г',
        
'I':'Ш',
        
'O':'Щ',
        
'P':'З',
        
'[':'Х',
        
']':'Ъ',
        
'A':'Ф',
        
'S':'Ы',
        
'D':'В',
        
'F':'А',
        
'G':'П',
        
'H':'Р',
        
'J':'О',
        
'K':'Л',
        
'L':'Д',
        
';':'Ж',
        
'\'':'Э',
        
'Z':'Я',
        
'X':'Ч',
        
'C':'С',
        
'V':'М',
        
'B':'И',
        
'N':'Т',
        
'M':'Ь',
        
',':'Б',
        
'.':'Ю',
        
'/':'.',
        
'q':'й',
        
'w':'ц',
        
'e':'у',
        
'r':'к',
        
't':'е',
        
'y':'н',
        
'u':'г',
        
'i':'ш',
        
'o':'щ',
        
'p':'з',
        
'[':'х',
        
']':'ъ',
        
'a':'ф',
        
's':'ы',
        
'd':'в',
        
'f':'а',
        
'g':'п',
        
'h':'р',
        
'j':'о',
        
'k':'л',
        
'l':'д',
        
';':'ж',
        
'\'':'э',
        
'z':'я',
        
'x':'ч',
        
'c':'с',
        
'v':'м',
        
'b':'и',
        
'n':'т',
        
'm':'ь',
        
',':'б',
        
'.':'ю',
        
'/':'.'
    
};

    
oldText document.getElementById(id).innerHTML;
    
window.originals[id] = oldText;
    
newText '';

    for(var 
0oldText.lengthi++)
    {
        
character oldText.charAt(i);
        
newText += (character in charsArray)? charsArray[character] : character;
    }

    
document.getElementById(id).innerHTML newText;


помог человеку, написал две функции:

1. convert(id) - меняет содержимое id с "cjkywt" на "солнце"
2. revert(id) - отменяет случившееся

работа была кропотливая, код кроссбраузерный и компактный, поэтому выкладываю сюда, вдруг кому это сэкономит время и силы :)

astrologer 10.06.2009 22:27

Цитата:

Сообщение от Дикс
работа была кропотливая, код кроссбраузерный и компактный

Серьёзно? Впрочем, тебе видней.

D1mOn 10.06.2009 22:34

Почему именно 61 символ? Почему бы не получить размер строки и исходя из него делать нужное количество выполнений операции замены?

astrologer 10.06.2009 22:46

Цитата:

Сообщение от FireFenix
Потому что в массиве 61 символ, количество заменяемых символов от строки не меняется

Нет, замечание было верное. Будут обработаны первые 62 символа текста. Остальные останутся как есть.
Цитата:

Сообщение от D1mOn
Почему именно 61 символ?

Наверное потому, что 80% кода - копипаст того, что было написано около двух месяцев назад. Копипаст содержит старые ошибки (в их числе вышеупомянутую), а также новые. Ну и ещё он не работает.

D1mOn 10.06.2009 22:56

Цитата:

Сообщение от astrologer
Нет, замечание было верное. Будут обработаны первые 62 символа текста. Остальные останутся как есть.
Наверное потому, что 80% кода - копипаст того, что было написано около двух месяцев назад. Копипаст содержит старые ошибки (в их числе вышеупомянутую), а также новые. Ну и ещё он не работает.

:D Как говорится афтар жжёт...

FireFenix 10.06.2009 22:59

Цитата:

Сообщение от astrologer
Нет, замечание было верное. Будут обработаны первые 62 символа текста. Остальные останутся как есть.
Наверное потому, что 80% кода - копипаст того, что было написано около двух месяцев назад. Копипаст содержит старые ошибки (в их числе вышеупомянутую), а также новые. Ну и ещё он не работает.

Тада, я вначале отпостил, а потом присмотрелся к тексту. Создатель пунтосвичера в гробу перевернётся :)

да и порадовал комментарий - "работа была кропотливая"

Дикс 11.06.2009 07:57

как показывает практика, необходимый ажиотаж вокруг любой фигни можно поднять всего одной фразой
Цитата:

работа была кропотливая
:D

спасибо за замечания, проверю и постараюсь исправить

Дикс 11.06.2009 08:03

про 62 исправил

astrologer
Цитата:

Копипаст содержит старые ошибки (в их числе вышеупомянутую), а также новые
какие?
у меня код работает без ошибок в опере 9.6, ИЕ6 (!) и ФФ 3.0.7

Цитата:

Ну и ещё он не работает
в чем?

scrat 11.06.2009 10:29

1. Код без комментариев
2. Функция revert ужасно оформлена.
3. Я надеюсь ты хоть не собственноручно впечатывал этот массив?

astrologer 11.06.2009 11:24

Цитата:

у меня код работает без ошибок в опере 9.6, ИЕ6 (!) и ФФ 3.0.7
Ну разумеется. Сейчас всё, что там происходит - определяются две функции. Имеет смысл дать ссылку на готовый пример, чтобы все могли воочию убедиться, как оно функционирует - не у всех в голове интерпретатор js.

Цитата:

как показывает практика, необходимый ажиотаж вокруг любой фигни можно поднять всего одной фразой
Цитата:

работа была кропотливая

Нет, остальная часть предложения играет большую роль и вынуждает не воспринимать первую как шутку / стеб.
т.е. теперь читать следует так:
Цитата:

получилась какая-то фигня, поэтому выкладываю сюда, вдруг кому это сэкономит время и силы
?

Цитата:

какие?
Добавь такое вот поле на страницу:
Код:

<input id="character" name="character">
и IE внезапно начнет фейлить


Время: 09:14