Есть ли какая-либо логическая цель для этого javascript помимо того, что я могу оценить?

#javascript

#javascript

Вопрос:

Вот фрагменты с одной из наших страниц. Мое мнение, что это ужасно сложно, сбивает с толку и имеет недостатки в своем дизайне. Во-первых, это вызывает сообщение в IE о том, что страница пытается получить доступ к буферу обмена. Есть ли что-то, чего я не понимаю?

Я предполагаю, что мой вопрос заключается в следующем: нормально ли думать, что это полный перебор? Имею ли я право расстраиваться? Или я не обращаю внимания на какое-то высшее знание?

 function NoEmailGiven(){

    var copyval

    document.frm1.NoEmail.focus();
    document.frm1.NoEmail.select();
    copyval=document.SCPACALL.NoEmail.createTextRange();
    copyval.execCommand('Copy');
    document.frm1.Email1.focus();
    document.frm1.Email1.select();
    document.execCommand('Paste');
    document.frm1.Email2.focus();
    document.frm1.Email2.select();
    document.execCommand('Paste');

}

response.write "<INPUT TYPE=button name=NoEmail VALUE=""None"" Title=""Click if No Email Address"" ONCLICK=""NoEmailGiven""></td></tr>"
  
  • Вот что должна делать страница..

Если пользователь нажимает кнопку с надписью «Нажмите здесь, если нет адреса электронной почты», то автоматически заполняет Email1 amp; Email2 буквенной строкой «None»

  • Вот псевдокод, поскольку я понял это из использования страницы, что он на самом деле делает.

Если пользователь нажимает кнопку с надписью «Нажмите здесь, если нет адреса электронной почты», скопируйте значение этой кнопки, которое равно «None», в буфер обмена клиента, затем вставьте из буфера обмена в Email1 и Email2

  • Наконец: Что бы я написал (Только для того, чтобы дублировать процесс, а не улучшать или изменять форму для пользователей)

    function NoEmailGiven()
    {
    Email1.value = "None";
    Email2.value = "None";
    }

Комментарии:

1. Вау. Вы должны отправить это в Daily WTF.

2. Этого JavaScript достаточно, чтобы прокормить небольшую армию… Да, тот, кто это написал, нуждается в порке.

3. Я надеюсь, вы поняли, что мое основное предположение при просмотре кода моих предшественников заключается в том, что он сделал это по причине, которую я, возможно, не понимаю. Я хочу понять обоснование того, чтобы не отменять ничего, что было сделано по действительно законной причине.

4. нет, я буду использовать DailyWTF для его доморощенного алгоритма шифрования-дешифрования ….encrypt(x) = (x-1237) / 17

5. Если бы я нашел эту функцию <airquote>encrypt</airquote>, я бы перестал предполагать, «что он сделал это по причине, которую я, возможно, не понимаю».

Ответ №1:

Да, это глупый способ сделать это. Они, очевидно, не знали, что они делали, и не поняли, что копирование и вставка — это концепция, ориентированная на пользователя, тогда как копирование значения одного поля в другое с использованием кода более разумно.

Я бы удалил его и переписал!

Комментарии:

1. О, я бы love..LOVE…to покажите некоторым другим разработчикам, которые «знают» все, что я вижу…

Ответ №2:

Я предполагаю, что то, что они пытаются сделать, это скопировать данные из одного поля в другое. В jQuery это было бы:

 var NO_EMAIL = '.....';
function NoEmailGiven() {
    $('#Email1').val(NO_EMAIL);
    $('#Email2').val(NO_EMAIL);
}
  

Комментарии:

1. Я согласен. Но зачем кому-либо вообще делать это так, как это реализовано выше, используя буфер обмена? Кроме того, я думаю, что jQuery является излишеством для чего-то такого простого, как это …. но я также могу ошибаться здесь.