欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Safari5.1.4的BUG?

程序员文章站 2024-01-03 21:51:28
...
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,满怀希望的做了相同的测试,结果很残念!!!

上一篇:

下一篇: