firefox中的javascript页面导航错误

时间:2013-05-16 11:49:05

标签: javascript

我将这个javscript函数用于显示页面导航

<script>
function parseNum(number, val){
number = parseInt(number);
number = number + val;
return (number < 10 ? '0' : '') + number;
}
function next()
{
if(parseInt(document.getElementById("in-page").innerHTML) < parseInt(document.getElementById("t-page").innerHTML))
{
var iid=document.getElementById("in-page").innerHTML;
var id=document.getElementById("in-page").innerHTML;
var realid=document.getElementById("r-page").innerHTML;
document.getElementById("in-page").innerHTML=parseNum(id, 1);
if(parseInt(document.getElementById("flag").innerHTML)=='0')
{
document.getElementById("r-page").innerHTML=parseNum(realid, 1);
}
else if(document.getElementById("flag").innerHTML=='1')
{
document.getElementById("r-page").innerHTML=parseNum(realid, 1);
document.getElementById("flag").innerHTML='0';
}
}
}
</script>

<span id="flag" style="display:none">0</span><span id="prev" onclick=prev();>
<<
</span><span id="r-page" style="display:none" >0</span>  |  <span id="next" style=cursor:pointer; onclick=next();>
>>
</span><br/><br/><span id="in-page">01</span><span >of</span><span id="t-page">12</span>

点击下一步工作时好。但是当数字是08并且点击下一页内跳转到01而没有09。对于所有测试这个结果相同。这个错误只发生在firfox和safari以及chrome中,即工作正常。

2 个答案:

答案 0 :(得分:3)

更改

number = parseInt(number);

number = parseInt(number, 10);

因为在Firefox上(在其他浏览器的旧版本中,以"0"开头的数字被解析为八进制,并且解析在第一个超出范围的字符处停止,这只允许"0"时您正在解析"08""09"

答案 1 :(得分:1)

您需要在parseInt中指定基数,因为08被识别为八进制数。

http://en.wikipedia.org/wiki/Octal

无论如何,总是指定基数会更安全。