パターンジェネレーターを開発しているときに、2011年のこの質問で説明されているのと同じ問題に遭遇しています。
与えられた答えは、クロスブラウザー、クライアント側のソリューションを実際には提供しません。
[パターンのエクスポート] ボタンをクリックするときは、次の解決策のいずれかを受け入れます。
ファイルが .png 拡張子で保存されていることを確認しながら (ファイル名の設定に関係なく)、canvas2image を介してダウンロードをトリガーするか、
メソッドの結果の画像を含むウィジェット (できれば KendoUI) を表示し
Canvas2Image.saveAsPNG()
、ユーザーがそこから画像を保存できるようにします。
現在使用しているボタンの HTML:
<button id="downloadbtn" onClick="javascript:downloadImage()" data-role="button" class="k-button">Export Pattern</button>
ダウンロードをトリガーする関数:
function downloadImage () {
//...extra code omitted
var oCanvas = document.getElementById("my_canvas");
oCanvas.width = $("#pixels-h").val();
oCanvas.height = $("#pixels-v").val();
Canvas2Image.saveAsPNG(oCanvas);
//...extra code omitted
}
このファイルは、Chrome バージョン 23.0.1271.95 および Safari バージョン 5.1.7 (6534.57.2) を使用する OSX で正常にダウンロードされるようです。
OSX 版 Firefox 17.0.1 でファイルをダウンロードした後、ファイルを開けないという報告があります。どうやら、ダウンロードにより .part ファイルが生成されます。
最大の問題は、ファイル拡張子がないと、この方法が信頼できるとは思えないことです。
現在のブラウザーとの互換性が可能な限り広いクライアント側のみのソリューションを探しているので、HTML5download
属性は現在 Chrome でのみサポートされているため、うまくいかないと思います。
創造的な解決策はありますか?