当前位置: 代码迷 >> Web前端 >> Safari5.1.4的BUG
  详细解决方案

Safari5.1.4的BUG

热度:295   发布时间:2012-06-27 14:20:09.0
Safari5.1.4的BUG?
3月13日 Safari5.1.4上线后,原本工程里Token检查的地方出错了,极度郁闷了一会儿。
从Log出力的情况来看,画面上保存的Token和服务器保存的值不一样,用的标签是最基本的<html:form>标签,没有道理不一样呀。

调查了很久也没有查出原因,加上由于刚上线的关系,也没有很多回馈信息。
自己做了一个测试后发现Safari5.1.4以后使用<body onload="form.submit">的地方都回出现相同的错误。
<html>
<head>
<script type="text/javascript">
function test(){
          document.aa.action = "b.html";
          document.aa.submit();
}
</script>
</head>
<body onload="test();">
test1
<form name="aa" action="test.jp" method="POST">
<input type="hidden" name="token" value="tokenaaaaaaaaaaaaaaaaaa">
</form>
</body>
</html>


<html>
<head>
<script type="text/javascript">
function test(){
          alert(document.getElementsByTagName('input')[0].value);
}
</script>
</head>
<body onload="test()">
test2
<form name="aa" action="test.jp" method="POST">
<input type="hidden" name="token" value="tokenbbbbbbbbbbbbbbbbbbbbb" />
</form>
</body>
</html>


执行a.html的时候,在IE和Safari5.1.4前,alert出来的信息是tokenbbbbbbbbbbbbbbbbbbbbb
但,在5.1.4上alert出来的信息是tokenaaaaaaaaaaaaaaaaaa

我怀疑,Safari5.1.4上使用onload来提交的时候,后画面显示时优先使用了前画面的Hidden值,无视了从后台过来的新值,就出现了上面的现象。

这到底是BUG呢,还是新的式样。。。有待Apple官方回答了
另外3月26日更新的Safari5.1.5,满怀希望的做了相同的测试,结果很残念!!!
  相关解决方案