この人頭いいなと思ったエピソード

こんにちは。Javascriptについて質問がございます。
http://xn--spss95f.com/
上記のサイトにある「壁紙」ダウンロードですが、
通常、jpegリンクは別ウィンドウ表示になってしまうと思うのですが、このサイトはダウンロードのダイアログボックスが表示されzipファイルのダウンロードのようにできるのです。
ソースを調べJavascriptで制御されている所まではわかったのですが、Javascriptが苦手の為実際どのように組み込んでいいのかわかりません。

参考サイト等がございましたら、教えていただけますでしょうか?

A 回答 (2件)

IE以外は画像を直接右クリックして保存する形になりますね。

ですがその方法は正直微妙ですよね・・。
個人的な意見ではさっき書いたJavaScriptは使わずにLZHやZIPで全ブラウザ一括で配布するのが一番いいと思います。以下のように。

<a href="wallpaper001.zip">ダウンロード</a>
    • good
    • 0
この回答へのお礼

is_may様

丁寧なご対応ありがとうございました。
検討の結果、教えていただきましたzip圧縮の形式をとる事になりました。
朝早くからどうもありがとうございました。

お礼日時:2007/09/30 15:52

興味があったので調べてみましたが、CGIやPHPを介してダウンロードしているようです。


CGIが利用可能なサーバーであれば以下のようにすればできます。

#!/usr/bin/perl
print "Content-Type:application/octet-stream\n";
print "Content-Disposition: attachment; filename=\"sample.jpg\"\n\n"; #ダウンロード時のデフォルトファイル名
open IN,"load.jpg"; #読み込む画像パスを任意に変更
binmode(IN);
binmode(STDOUT);
while(<IN>) {print} ;
close IN;
exit;


ですがCGIの知識がないと実装は難しいのでJavaScriptを利用した方法で

<iframe name="save" src="load.jpg" style="display:none"></iframe>
<input type="button" value="保存" onclick="save.document.execCommand('saveAs');">

このようにすればできます。一行目の「load.jpg」がダウンロード先のパスになります。
ただしIE専用ですのでブラウザによるダウンロード方法の振り分けなどを行う必要があります。
また、この方法ではボタンをクリックするといきなり保存先のディレクトリを指定するような形になります。
    • good
    • 0
この回答へのお礼

ご回答頂き、ありがとうございます。

CGIで制御していたんですね。
今回のケースではCGIの導入は難しいです。
is_mayさんの貴重なお時間をつかって、お答え頂いたのにすみません。

今後のこういったケースでは大変為になりました。
ありがとうございます。

そして、JAVASCRIPTでの件ですがありがとうございます。
導入してみようと思います。

IE以外のブラウザでの実装はやはりむずかしいのでしょうか?

お礼日時:2007/09/30 13:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報