作者KawasumiMai (魔物を讨つ者)
看板PHP
标题[请益] 急 IE8 Javascript错误 php
时间Wed Apr 27 09:44:45 2011
这是我的程式片段
<?
echo "<script language='JavaScript'>";
?>
var DifferenceHour = -1
var DifferenceMinute = -1
var DifferenceSecond = -1
var Tday = new Date(<? echo "'".$nm." ".$nd.",".$ny." ".$time.":00:00'"; ?>)
var daysms = 24 * 60 * 60 * 1000
var hoursms = 60 * 60 * 1000
var Secondms = 60 * 1000
var microsecond = 1000
function clock()
{
var time = new Date()
var hour = time.getHours()
var minute = time.getMinutes()
var second = time.getSeconds()
var timevalue = ""+((hour > 12) ? hour-12:hour)
timevalue +=((minute < 10) ? ":0":":")+minute
timevalue +=((second < 10) ? ":0":":")+second
timevalue +=((hour >12 ) ? " PM":" AM")
// document.formnow.now.value = timevalue
var convertHour = DifferenceHour
var convertMinute = DifferenceMinute
var convertSecond = DifferenceSecond
var Diffms = Tday.getTime() - time.getTime()
DifferenceHour = Math.floor(Diffms / daysms)
Diffms -= DifferenceHour * daysms
DifferenceMinute = Math.floor(Diffms / hoursms)
Diffms -= DifferenceMinute * hoursms
DifferenceSecond = Math.floor(Diffms / Secondms)
Diffms -= DifferenceSecond * Secondms
var dSecs = Math.floor(Diffms / microsecond)
if(convertHour != DifferenceHour) document.formnow.dd.value=DifferenceHour
if(convertMinute != DifferenceMinute)
document.formnow.hh.value=DifferenceMinute
if(convertSecond != DifferenceSecond)
document.formnow.mm.value=DifferenceSecond
document.formnow.ss.value=dSecs
//if(!DifferenceHour && !DifferenceMinute && !DifferenceSecond &&
!dSecs)window.location.reload()
// document.formnow.Tnow.value= DifferenceHour DifferenceMinute +
DifferenceSecond + dSecs
setTimeout("clock()",1000)
}
<?
echo "</script>";
?>
这样的情况下
FF看程式码可以正确显示时间
并且倒数
IE8有抓到Php给的时间
却出现NaN的状态
目前怀疑三种可能性
1.据说连comment格式不合都有问题,可是我把comment全删了还是有问题
2.据说setTimeout跟IE8有点不相容
3.据说header我宣告成UTF-8 也可能会有IE问题
请问怎麽解决
--
▼▼
/﹊
﹚
—
//
‘ \ ╲ ◥◣
──
ノ /
◤▃
▄▄▄◣ █ 川澄 舞˙兔子mode
— ~
︶◢◣▄ ◢◤ @binshaunMKII
﹊
▼◤
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.62.206.43
1F:推 UniFish:你干嘛只让PHP echo tag而已?直接写成javascript不就好了 04/27 10:40
不好意思因为使用的编辑器不这样做的话,js中的php会没有标示色
我以为这样会失效,刚刚试过一次可以正常执行
补充问题
现在发现似乎不是上面的问题
NaN的原因是计算上有错误(IE没抓到值
var Tday = new Date(<? echo '"'.$nm.' '.$nd.', '.$ny.' '.$time.':00:00"'; ?>)
这是我JS中的某一行
source的结果是
var Tday = new Date("05 04, 2011 6:00:00")
FF可以正常抓到值
并且带入JS中
可是IE8虽然有正确出现在source码
却无法带入JS
请问怎麽解决?
我会这样确认是因为我把栏位暂时显示现在时间
发现其实是可以正常运作的
也就是算差值时有错
把php直接用字串取代就可以运作了
可见得php带入有问题
※ 编辑: KawasumiMai 来自: 61.62.206.43 (04/27 10:52)
2F:→ KawasumiMai:原来是"05 04"不行,要"May 04"才行.... 04/27 11:16