2008-10-07 55 views
0

有没有简单的方法来阻止浏览器下载和显示图像,最好是通过一些神奇的风格标签或javasctipe。一种防止手机浏览器下载和显示图像的方法

事情是,我想稍微调整一下公司的网站,以便通过移动设备更加有用。该公司是一款游戏产品,它的主页上有5MB图片(不能触及)。他们在我的DSL上显示出致命的慢速,并且他们可以成为每MB支付他的GPRS的人的杀手;)

页面的代码不是我的,也不应该被触摸(事实上,它应该从头开始编写的,但它不是我的姿态,现在就这样做):)

我在想两个解决方案:

1)如果有某种风格标签(或者一个JavaScript的?可以在移动浏览器上工作的那个),这将阻止浏览器下载图像并强制显示alt参数,相反,如果我发现用户代理是一些已知的移动事物,我可以简单地附加这种样式。 或2)我可以稍微调整一下web服务器以检查User-agent头,如果客户端请求图像(.png,.gif和.jpg),则发送404。这有一个不利的寿 - 我想让用户查看图像,如果他真的想要。

看来,第一个解决方案将是最好的 - 你们认为什么?有没有一种JavaScript的方式来做到这一点?

我可以尝试建立文档DOM,然后让所有<img>元素,并与一些占位符代替他们src甚至反而会在大多数移动浏览器(Opera Mini的我想,工作时,Windows Mobile的啄,诺基亚基本Symbian的浏览器)?而且,玩文档DOM是移动设备上的一个很好的解决方案(我不确定它的内存和CPU要求是否诚实)。

+0

您使用哪个平台?如果是ASP.NET,您是否有权访问App_Browsers文件夹? – 2009-01-23 22:24:35

回答

4

您可以使用htaccess重定向移动浏览器用户提出的图片请求。我没有测试过这一点,但它应该工作:

RewriteCond %{HTTP_USER_AGENT} (nokia¦symbian¦iphone¦blackberry) [NC] 
RewriteCond %{REQUEST_URI} !^/images/$ 
RewriteRule (.*) /blank.jpg [L] 

此代码重定向由诺基亚,塞班,iPhone和黑莓对文件所做的图像文件夹中的空白图像文件中的所有请求。

1

我不会依赖于JavaScript或任何其他客户端方法与移动浏览器。大多数移动浏览器都不足以支持JavaScript。

某些服务器端“分支”可能是要走的路。并且不要忘记在你使用时禁用css背景图片。

0

为什么不使用alternative style sheets?我只是不知道他们得到移动浏览器的支持。

您可以为移动设备指定一个单独的CSS:

<link rel="stylesheet" media="screen,projection,tv" href="main.css" type="text/css"> 
<link rel="stylesheet" media="handheld" href="smallscreen.css" type="text/css"> 

在该CSS重写的<img>显示,所有的背景图片。

+0

是的,问题仍然是移动浏览器如何处理它,我会检查你。 设置是否显示:无阻止浏览器下载图像?或者它会被下载,只是不显示? – kender 2008-10-07 11:31:41

0

这就像欺骗你的用户代理。如果他们真的想要完整版本,就把它给他们。也许增加一个建议黑莓用户向制造商抱怨缺乏这样的选项。