1. JavaScript / Говнокод #13542

    +150

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    function write_text(){p = "";
    var mhour = newDate().getHours(); 
    if (hour>=4 && hour <10) {p = "ое утро"} else if (hour>=10 && hour <16) {p = "ый день"} else if (hour>=16 && hour <22) {p = "ый вечер"} else if (hour>=22 && hour <04) {p = "ой ночи"};
    a = document.getElementById("result");
    pre = document.getElementById("pre") + " ";
    n = document.getElementById("name");
    patr = " " + document.getElementById("patronymic");
    s = document.getElementById("surname");
    b = document.getElementById("birthdate");
    if (n.value!=="" && s.value!=="" && b.value!==""){a.innerHTML="Подождите, пожалуйста...";t=setTimeout('a.innerHTML="Добр"+p+", "+pre+s+"! Мы рады приветствовать Вас на этой странице! Она прекрасна, не так ли? Но, к сожалению, её полезность равна нулю, о чём мы очень сильно скорбим. Единственное, что мы могли бы сделать для Вас, "+n+", — это сообщить Вам Вашу же дату рождения: ею является "+b+".<br>До скорого, "+n+patr"!"',1750)} else
    if (n.value!=="") {a.innerHTML="Введите своё имя!";t=setTimeout('a.innerHTML="Ждём ввода данных..."',2000)} else
    if (s.value!=="") {a.innerHTML="Введите свою фамилию!";t=setTimeout('a.innerHTML="Ждём ввода данных..."',2000)} else
    if (b.value!=="") {a.innerHTML="Введите свой день рождения!";t=setTimeout('a.innerHTML="Ждём ввода данных..."',2000)} else
    {a.innerHTML="Заполните все поля!";t = setTimeout('a.innerHTML="Ждём ввода данных..."',2000)}}
    
    
    
    
    
    
    
    
    ) {a.innerHTML=

    Хотел было удалить ко всем баянам, но вспомнил - это же говнокод! Пришлось запостить сюда :(

    Запостил: parzh, 03 Августа 2013

    Комментарии (10) RSS

    • 23 строчку - фтопку, её не было!
      Ответить
    • Хотел было написать про все баяны, но вспомнил - это же говнокод! Пришлось запостить null :(
      Ответить
    • pre = document.getElementById("pre") + " ";

      Что это за чёрная магия? У элемента был переопределён toString, или в каких-то браузерах это даёт что-то разумное?
      Ответить
      • pre это переменная; а "pre", как понятно из кода, — id элемента. Чтобы не путаться, я решил продублировать.
        Но заклинание не работает, магии не происходит.
        Ответить
      • А, я вкурил.
        Намёк на то, что необходимо использовать getElementById("pre").toString() + " "?
        Ответить
        • Нет, при сложении со строкой здесь вызовется toString объекта, писать toString явно надо будет, если переопределили valueOf. Или, скажем, переопределили String.prototype.toString - тогда есть смысл писать " ".toString() :)
          Просто у меня все эти приведения к строке рождают нечто вида "[object HTMLDivElement]". Вот я интересуюсь, так задумывалось, или для каких-то тэгов/браузеров получается чуть более разумная строка, или где-то выполнили код, эквивалентный этому:
          pre.constructor.prototype.toString = function(){
            return this.innerText; // или return this.value;
          };
          Ответить
          • Конечно, так задумывалось! Ведь то, что написано у вас, - это то же самое, что:
            document.getEementById("pre").innerHTML; // или value
            , только реализованное через функцию.
            Ответить
    • А с 15 по 22 мы типа данных ждем?)
      Ответить

    Добавить комментарий