2012-01-07 15 views
4

私はdata:URIでエンコードしているGZipped JavaScriptファイルを持っています。例えばダウンロードしたgzipデータURIのファイル名拡張子を強制するには?

<a href="data:application/x-gzip;base64,FOO">My Javascript File</a> 

すると、ユーザーを右クリックすると、私はdownload.js.gzする結果のファイルの名前をしたいと思います(Chromeで)このファイルを保存します。この方法で、ユーザーがこのファイル(Mac OS X)をダブルクリックすると、解凍され、正しく名前がdownload.jsに変更され、内容を簡単に表示できます。

コンテンツタイプtext/javascript(またはapplication/x-javascript)を使用すると、ファイルがdownload.jsという名前で保存されるという問題があります。コンテンツタイプapplication/x-gzipを使用すると、ファイルはdownload.gzとして保存されます。

ファイルを保存する方法はありますか?.js.gz?ここで

は、両方のリンクの作業例です:http://jsfiddle.net/xYm8w/3/

ファイルには、データのURIではなく、実際のファイルへのリンクである必要があります。 <a>タグの間のテキストを変更しようとしましたが、何も影響を与えません。

+0

この重複:http://stackoverflow.com/questions/283956/is-there-any-way-to-specify-a-suggested-filename-when-using-data-uri –

答えて

4

Chrome以外のブラウザでこれを行う方法はないようです。したがって、私が考えることができる最良の選択肢は、ファイルを普通に保存するように(ユーザーがコンテンツタイプに基づいて適切な拡張子を自動的に挿入するように)、それらをファインダに入れてファイルの名前を変更して、 .gz '拡張子。

Chromeでは、タグのdownload属性(これはthis answerで見つけました)を使用できます。例:http://jsfiddle.net/pYpqW/

+1

正しい。仕様(http://www.ietf.org/rfc/rfc2397)によると、ファイル名を指定する方法はありません。データURLはファイルではなくデータストリームと見なされます。 –

関連する問題