モバイルブラウザが画像をダウンロードして表示するのを防ぐ方法
-
05-07-2019 - |
質問
ブラウザが画像をダウンロードして表示するのを防ぐ簡単な方法はありますが、マジックスタイルのタグまたはjavasctipeを使用するのが最善です。
問題は、モバイルデバイスでより使いやすくなるように、会社のWebサイトを少し調整したいということです。同社はゲーム会社であり、そのメインページには5MBの画像があります(そしてそれらは触ることができません)。それらは私のDSLで致命的に遅く表示されることがあり、MBごとにGPRSの支払いをしている人を殺すことができます;)
ページのコードは私のものではないので、触れてはいけません(実際、最初から記述する必要がありますが、今やるのは私のジェスチャーではありません):
2つの解決策について考えていました:
1)ブラウザが画像をダウンロードできず、代わりに代替パラメータを表示することを強制する何らかの種類のタグ(または、おそらくJavaScriptかモバイルブラウザで動作するもの)があれば、これを添付することができますユーザーエージェントが既知のモバイル機器であることを発見した場合のスタイル。 または、2)Webサーバーを少し調整してUser-agentヘッダーを確認し、クライアントが画像(.png、.gif、.jpg)を要求した場合、代わりに404を送信できます。それには欠点があります-ユーザーが実際に必要な場合に画像を表示できるようにしたいと思います。
最初の解決策が最善だと思われます-皆さんはどう思いますか?そして、それを行うためのjavascriptの方法はありますか?
ドキュメントDOMを構築してから、すべての<img>
要素を取得し、それらのsrc
をプレースホルダーに置き換えても、ほとんどのモバイルブラウザーで動作します(Opera Mini、Windows Mobile、基本的なSymbian Nokiaのブラウザ)?また、ドキュメントDOMを使用することは、モバイルデバイスでの優れたソリューションになります(正直に言うと、メモリとCPUの要件についてはわかりません)。
解決
htaccessを使用して、モバイルブラウザユーザーからの画像リクエストをリダイレクトできます。これはテストしていませんが、動作するはずです:
RewriteCond %{HTTP_USER_AGENT} (nokia¦symbian¦iphone¦blackberry) [NC]
RewriteCond %{REQUEST_URI} !^/images/$
RewriteRule (.*) /blank.jpg [L]
このコードは、nokia、symbian、iphone、およびblackberryによって画像フォルダー内のファイルに対して行われたすべてのリクエストを空の画像ファイルにリダイレクトします。
他のヒント
モバイルブラウザでは、javascriptやその他のクライアント側の方法に依存しません。ほとんどのモバイルブラウザは、javascriptを十分にサポートしていません。
一部のサーバー側<!> quot;分岐<!> quot;おそらく行く方法です。また、CSSの背景画像を無効にすることを忘れないでください。
代替スタイルシートを使用しない理由モバイルブラウザでどの程度サポートされているかわかりません。
モバイルデバイス用に別の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>
およびすべての背景画像の表示をオーバーライドします。
これは、ユーザーエージェントのなりすましのようなものです。彼らが本当にフルバージョンを望んでいるなら、彼らにそれを与えてください。ブラックベリーユーザーに提案を追加して、そのようなオプションがないことについてメーカーに不満を言うかもしれません。