错误检查功能内的脚本
我一直在做我的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
编辑:
/* 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.       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
});
}
两三与代码的问题:
你没有宣布任何参数。我猜
speedSet
是为了成为函数的参数?您使用
!==
如果你知道你正在传递的是已经一个数字,而不是数字字符串,它是正确的。如果你不知道,你想先解析它。我可能不会单独检查所有三个值,但这可能是一种风格的事情。
它不会在任何地方保存结果值(所以也许我的#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
)。
非常感谢。我会接受你的建议。当我插入代码时,它仍然显示错误消息,无论它是1,2还是3.我无法弄清楚代码中可能导致它的原因。 – traveler84 2012-03-02 15:59:47
嗨TJ,我想知道你是否可以知道我能做些什么来防止它弹出。无论我放在变量中,它仍会弹出警报。我计划取消警报,但由于某种原因,声明正在加载它。 – traveler84 2012-03-02 22:38:21
该功能没有任何问题,必须在代码的其余部分。 'speedSet'如何设置? – 2012-03-02 15:30:25
它可能是1,2或3.它工作得很好,但我想添加一个错误检查功能。所以如果我为speedSet输入abc,它会给我一个javascript错误并破坏整个代码。 – traveler84 2012-03-02 16:05:55
我明白这一点。但是如果'speedSet'是一个字符串,你发布的代码不会中断。因此,破坏你的代码的错误必须在别的地方。这就是为什么我想知道,如何以及在哪里为'speedSet'分配一个值,以及你在用这个变量做什么。说得通?如果您没有提供更多信息,我们无法为您提供帮助,因为您发布的代码没有任何问题。 – 2012-03-02 16:10:26