#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 является излишеством для чего-то такого простого, как это …. но я также могу ошибаться здесь.