0

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

问题是,我想稍微调整一下公司的网站,使其更易于通过移动设备使用。该公司是一家游戏公司,它的主页上有大约 5MB 的图像(而且这些图像是无法触摸的)。他们已经在我的 dsl 上显示出非常慢的速度,对于按 MB 支付 GPRS 费用的人来说,他们可能是杀手;)

页面的代码不是我的,也不应该动(其实应该是从零开始写的,但现在不是我的姿态):)

我在考虑两种解决方案:

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

似乎第一个解决方案是最好的——你们怎么看?有没有一种javascript方法可以做到这一点?

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

4

4 回答 4

4

您可以使用 htaccess 重定向来自移动浏览器用户的图像请求。我没有对此进行测试,但它应该可以工作:

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

此代码将诺基亚、塞班、iphone 和黑莓对图像文件夹中文件的所有请求重定向到空白图像文件。

于 2008-10-07T12:17:32.410 回答
1

我不会在移动浏览器中依赖 javascript 或任何其他客户端方法。大多数移动浏览器对 javascript 的支持不够好。

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

于 2008-10-07T08:09:41.520 回答
0

为什么不使用替代样式表?我只是不知道移动浏览器对它们的支持程度。

您可以为移动设备指定单独的 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>所有背景图片的显示。

于 2008-10-07T08:48:39.973 回答
0

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

于 2009-07-23T13:44:48.183 回答