一种防止移动浏览器下载和显示图像的方法

时间:2008-10-07 07:59:47

标签: javascript http-headers mobile-website

是否有一种简单的方法可以防止浏览器下载和显示图像,最好是通过一些魔术风格标签或javasctipe。

问题是,我想通过移动设备调整公司的网站,以便更有用。该公司是一个游戏公司,它的主页上有5MB的图像(这些图像无法触及)。他们在我的dsl上显示致命的速度,他们可以成为那些为每MB支付GPRS费用的人的杀手;)

页面的代码不是我的,也不应该被触及(事实上,它应该从头开始编写,但现在不是我的手势):))

我在想两个解决方案:

1)如果有某种样式标签(或者可能是javascript?可以在移动浏览器上使用的那个),这会阻止浏览器下载图像并强制显示alt-parameter而不是我可以简单地附加这个如果我发现用户代理是一些已知的移动设备,那么风格。 或者2)我可以稍微调整网络服务器以检查用户代理标头,如果客户端请求图像(.png,.gif和.jpg),则发送404。这有一个缺点 - 我想允许用户查看图像,如果他真的想要。

似乎第一种解决方案是最好的 - 你们怎么想?有没有一种javascript方式来做到这一点?

我可以尝试构建文档DOM,然后获取所有<img>元素,并用一些占位符替换他们的src,但这将适用于大多数移动浏览器(我认为Opera Mini是Windows Mobile的东西) ,诺基亚的基本Symbian浏览器)?并且使用文档DOM在移动设备上是一个很好的解决方案(说实话,我不确定它的内存和CPU要求)。

4 个答案:

答案 0 :(得分:4)

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

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

此代码将nokia,symbian,iphone和blackberry对图像文件夹中的文件所做的所有请求重定向到空白图像文件。

答案 1 :(得分:1)

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

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

答案 2 :(得分: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>和所有背景图片的显示。

答案 3 :(得分:0)

这就像欺骗您的用户代理。如果他们真的想要完整版,那就给它们吧。也许向Blackberry用户添加一个建议,向制造商抱怨缺少这样的选项。