Firefox等居然不报404错误?!

类别: 前端开发 — 标签: , , — honk @ 2008-10-23 01:47:29

在做Flash加载图片的时候, 由于图片可能不存在或图片地址无效等情况, 如果不做处理, 这无疑会是一个糟糕的用户体验!

你想到的解决方法可能是在服务器端做转向, 图片不存在时转向到一个默认图片, 如:

ErrorDocument 404 http://xxx.com/no_photo.gif

思路没错, 不过你试一下可能就会吃闭门羹(我以前就吃过,呵呵), flash似乎根本不理会你的转向, 后来找到解决方法如下:

第一步, 做404转向到一个中转页面, 如ErrorDocument 404 /404.php;

第二步, 在/404.php里先发送一个 状态为200 的头, 然后用php读取图片:

———————代码开始———————–

<?php

header(“HTTP/1.0 200 OK”);

readfile(“no_photo.gif”);

?>

———————代码结束———————–

以上代码是以前写的, 未知记忆是否有误, 读者见谅!

进入正题, 其实我今天想说的是另一种解决方案: 在flash客户端实现.

因为Flash可以侦听很多加载事件,包括HttpStatus. 我开始是做HTTPStatusEvent的侦听, 即加载出现404状态时,说明目标图片不存在, 这时我就指定flash去重新加载一个默认的图片. 没想到浪费了我大半晚上的时间, firefox下它硬是不出效果. 后来测试发现: 出IE外, FF, Opera, Chrome都没效果.

再后来测试, 发现侦听 IOErrorEvent 事件就好了, 各个浏览器下都正常. 估计IO_Error事件在404之前, 不过我还是没搞明白, 那个HTTPStatusEvent到底怎么回事?

对于默认图片的这个问题, 相信每个网站都会有遇到,  或许你有更好的解决方案, 欢迎跟帖,不吝赐教!

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Powered By WordPress and soIdo