2012-03-02 4 views
0

Я отлично справляюсь с самообучением JS. Я выздоровел, так как я, наконец, изучил функции и, или, вызывая функции и т. Д. Я даже взволнован, потому что я отсортировал все по редактируемым пользователем переменным, не пользовательским переменным и создал функции для всего остального. Поэтому у меня есть вопрос, который я пытаюсь выяснить. Я добавляю коды ошибок ко всем моим редактируемым переменным. Мое рассуждение состоит в том, что я знаю, что я не всегда буду в этом положении, работе, жизни и т. Д., Поэтому я хочу убедиться, что если кто-то новый придет, они смогут отредактировать и уйти. Если они положили alskjdfl, где должно пройти 1, 2 или 3, я хотел бы вернуть ошибку. Я убираюсь и добавляю свои собственные номера ошибок для удовольствия. Тогда, если пользователь достаточно умный, он может просматривать исходный код JS и видеть мои заметки о том, почему отображается ошибка. Кстати, это все внутренние документы, поэтому я не беспокоюсь о сети.Ошибка проверки скрипта в функции

Ниже приведен код. В принципе, если я перейду к переменной и поставлю символ алфавита или некоторые символы alsdfjlkjsdaf, он сломает страницу. Я пытаюсь найти способ, который говорит, если там что-то есть рядом с 1-3, установите скорость на 1 и дайте ошибку. Мои попытки на этом не удалось до сих пор, потому что независимо от того, что я там вложил, он все равно разбивает страницу, как только персонаж указан. Я думал, что название функции кажется подходящим. :)

Это для прокрутки. Он отображает текстовую информацию, а также связанные с работой вещи и часы. Он встроен в iframe.

- Спасибо всем, что чип в!

/* Start speedlimit code - This code ensures speed won't be faster than 3. */ 
function speedLimitSet() 
{ 
if ((speedSet !== 1) && (speedSet !== 2) && (speedSet !== 3)) 
{ 
speedSet = 1 
//error code 1003 
alert("Error Code 1003 - speedSet - Please change speed to 3 or less. This pop up will continue to pop up otherwise. Speed limit is set to 3 or less.") 
} 

} 
//end speedlimit code 

Edit:

/* Quality check for turnOffcrawler. It has to be typed as "Yes" or "No" else will error. */ 
function crawlerSwitch() 
{ 
if (turnOffcrawler == "No") /* Code for general message is included in here. It looks long but it is spaced out. */ 
{ 
width = "1000px"; 
speed = speedSet; 
errorFlag1000 = "No"; 
      } 
else if (turnOffcrawler == "Yes") 
{ 
width = "0px"; 
speed = 0; 
errorFlag1000 = "No"; 
} 
else 
{ 
width = "1000px"; 
speed = speedSet 
errorFlag1000 = "Yes" 
importantMessageError = "Error Code 1000 - turnOffcrawler is not set correctly. Please check settings and/or refer to instructions. &nbsp&nbsp&nbsp&nbsp&nbsp Error Code 1000 - turnoffcrawler is not set correctly. Please check settings and/or refer to instructions." 
} 
} 
//end quality check 

Что то ссылки на:

function marqueeInitCall() 
{ 
marqueeInit({ 
    uniqueid: 'mycrawler', 
    style: { 
     'padding': '0px', 
     'width': width, //change to 1000 for normal, change to 0 for off 
     'background': scrollerBackground, //#00008B is background of menu bar 
     'border': '0px solid black' 
    }, 
    inc: speed, //speed - pixel increment for each iteration of this marquee's movement 
    mouse: mouse, //mouseover behavior ('pause' 'cursor driven' or false) 
    moveatleast: 1, 
    neutral: 150, 
    savedirection: true 
}); 
} 
+0

Нет ничего плохого в этой функции, должно быть что-то в остальной части вашего кода. Как устанавливается 'SpeedSet'? –

+0

Это либо 1, 2, либо 3. Он работает нормально, но я хотел добавить туда функцию проверки ошибок. Поэтому, если я набираю abc для speedSet, он даст мне ошибку javascript и сломает весь код. – traveler84

+0

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

ответ

0

Несколько проблем с этим кодом:

  1. Вы не объявляя никаких аргументов , Я предполагаю, что speedSet должен был стать аргументом функции?

  2. Вы используете !==, который является правильным, если вы знаете, что вы передается это уже число, а не числовой строкой. Если вы этого не знаете, сначала вы хотите разобрать его.

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

  4. Это не сохраняет полученное значение в любом месте (так что, может быть, мой №1 неверен). Если speedSet является глобальной переменной, и эта функция просто проверяет ее значение, я бы рекомендовал не с использованием глобальных переменных.

так:

/* Start speedlimit code - This code ensures speed won't be faster than 3. */ 
function speedLimitSet(speedSet) 
{ 
    speedSet = parseInt(speedSet, 10); // Now it's a number or `NaN` 
    if (isNaN(speedSet) || speedSet < 1 || speedSet > 3) 
    { 
     speedSet = 1; 
     //error code 1003 
     alert("Error Code 1003 - speedSet - Please change speed to 3 or less. This pop up will continue to pop up otherwise. Speed limit is set to 3 or less.") 
    } 

    // Save it somewhere appropriate here 
} 
//end speedlimit code 

Другие предметы примечания:

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

  • Хотя JavaScript имеет ужас, который automatic semicolon insertion, мой скромный совет никогда не полагаться на него, всегда ставил во всех необходимых запятой. (Вам понадобился один после speedSet = 1.)

  • alert не является отличным способом борьбы с ошибками программирования. Рекомендовать бросить исключение и обработать его на более высоком уровне кода.

  • Вы свободны делать то, что вы хотите с вашими именами функций, но конвенции для функций инкубационных обычно setXyz (например, setSpeedLimit, а не speedLimitSet).

+0

Большое вам спасибо. Я приму ваш совет для настройки. Когда я подключаю код, он все еще отображает сообщение об ошибке, было ли это 1, 2 или 3. Я не мог понять, что может вызвать его в вашем коде. – traveler84

+0

Эй, TJ, мне было интересно узнать, что я могу сделать, чтобы он не появился. Независимо от того, что я помещаю в переменную, он все равно выдает это предупреждение. Я планирую удалить предупреждение, но по какой-то причине заявление заставляет его загружать его. – traveler84