错误检查功能内的脚本

问题描述:

我一直在做我的JS自我训练很好。自从我终于学习了函数,或者调用函数等之后,我感到非常兴奋,因为我通过用户可编辑的变量,非用户变量以及创建的其他函数的函数对所有内容进行了排序,我甚至感到很兴奋。所以我有一个问题,我试图找出。我将错误代码添加到所有可编辑的变量中。我的推理是,我知道我不会一直处于这个位置,工作,生活等等,所以我想确保如果有新来的人,他们将能够编辑和去。如果他们把a​​lskjdfl放在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 

编辑:

/* 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'如何设置? – 2012-03-02 15:30:25

+0

它可能是1,2或3.它工作得很好,但我想添加一个错误检查功能。所以如果我为speedSet输入abc,它会给我一个javascript错误并破坏整个代码。 – traveler84 2012-03-02 16:05:55

+0

我明白这一点。但是如果'speedSet'是一个字符串,你发布的代码不会中断。因此,破坏你的代码的错误必须在别的地方。这就是为什么我想知道,如何以及在哪里为'speedSet'分配一个值,以及你在用这个变量做什么。说得通?如果您没有提供更多信息,我们无法为您提供帮助,因为您发布的代码没有任何问题。 – 2012-03-02 16:10:26

两三与代码的问题:

  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 2012-03-02 15:59:47

+0

嗨TJ,我想知道你是否可以知道我能做些什么来防止它弹出。无论我放在变量中,它仍会弹出警报。我计划取消警报,但由于某种原因,声明正在加载它。 – traveler84 2012-03-02 22:38:21