この問題は解決できませんが、表示されるように非常に小さな構文問題でなければなりません。私がやろうとしていることが不可能な場合を除いて、構文の断片はほとんどありません(しかし、私はそれが不可能でなければならない理由はありません...)。jpeg画像を含むjavascriptバイナリ文字列を表示するにはHTML構文が不明です
私は配列に多数の画像を保存したいので、私は、サーバー側でのBase64に画像をエンコードする機能を書かれている:
だから、Base64でと私は私が整理することができ、通常の文字列などの画像をダウンロードすることができます配列を作成してから、正しいイメージと正しい瞬間を選択したときにオブジェクトに入れて、サーバーを再度参照せずに、ユーザーが待つ必要はありません。
まず相: - >文字列 {//として 'IMAGEURL' を送信するためにサーバーを頼む
関数download64(IMAGEURL)//
それから私はこのような何かをbase64文字列 var tx = DoTheJob(); // ... AJAXを介して接続すると、私は「TX」で画像を保持しています。この段階で リターンが をTX「TX」VARの文字列}
ようにbase64に変換された画像をダウンロードクライアント側のBase64文字列。 はやや後、私は「幹部」と呼ばれるdivの中に私の画像を表示したいので、私は次の操作を行います。
第二相: は、私はちょうどに私の画像を設定する「display64」機能を呼び出す必要があります画面上の「幹部」のオブジェクト:
display64( "cadre"、tx);
この機能を使用して
:今すぐ画像が表示され
function display64(destinationDiv,imgText64) //->void
{ // display 'imgText64' into destinationDiv
var oImg = "<img alt='' src='data:image/jpg;base64," + imgText64 + "'>";
var x = document.getElementById(destinationDiv);
x.innerHTML = oImg;
}
。残念ながら、これはInternet Explorer 8が32Kbを超えるBase64イメージを読み取ることができないため、Firefoxでのみ有効です。そして私の主催では、IE 8だけを使用しています!
私はbase64エンコーダを落として、画像をバイナリ文字列として取得することに決めました。これは最初はヌル文字に問題がありましたが、管理できました。
ここでは、元のJPGファイル(サーバー側でエンコードしてからクライアント側に復元した0を含む)の正確なコピーを含むバイナリ文字列を使用します。だから、私は今必要なことは、単純な関数「displayBin」ですが、私はウェブ上の構文を見つけることができません。
function displayBin(destinationDiv,imgTextBin) //->void
{ // display 'imgTextBin' into destinationDiv
var oImg = "<img alt='' src='??????? + imgTextBin + "'>"; // What's the syntax here, please?
var x = document.getElementById(destinationDiv);
x.innerHTML = oImg;
}
誰でも助けることができますか?どうもありがとう。
ブラウザがデータURLをサポートしていない場合は、必要な操作を実行できません。画像を生成するにはサーバー側のスクリプト(例えばPHPなど)を使用し、img要素のsrcはサーバー側のスクリプトを指す必要があります。しかし、要素にバイナリコードを追加するだけで、うまくいくことを期待できます。 – mpm