代码之家  ›  专栏  ›  技术社区  ›  kender DaveL

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

  •  0
  • kender DaveL  · 技术社区  · 16 年前

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

    问题是,我想调整一下公司的网站,使其通过移动设备更加可用。这家公司是一家游戏公司,在它的主页上有大约5兆的图片(那些图片是无法触摸的)。它们在我的DSL上显示出非常慢的速度,对于每MB支付GPRS费用的人来说,它们可能是杀手;)

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

    我在想两个解决方案:

    1)如果有某种样式标记(或者可能是javascript?如果我发现一个用户代理是某个已知的移动设备,那么我可以简单地附加这个样式。 或者2)我可以稍微调整一下Web服务器来检查用户代理头,如果客户机请求一个图像(.png、.gif和.jpg),则发送404。这有一个缺点——如果用户真的想要的话,我想允许他查看图片。

    似乎第一个解决方案是最好的-你们怎么想?有没有一种JavaScript的方法?

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

    4 回复  |  直到 15 年前
        1
  •  4
  •   matte    16 年前

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

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

    此代码将诺基亚、Symbian、iPhone和BlackBerry对图像文件夹中文件的所有请求重定向到空白图像文件。

        2
  •  1
  •   Corey    16 年前

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

    一些服务器端的“分支”可能是可行的方法。别忘了当你在这里的时候禁用CSS背景图像。

        3
  •  0
  •   Treb    16 年前

    为什么不使用 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> 以及所有背景图片。

        4
  •  0
  •   Andy    15 年前

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