2012-03-18 9 views
0

ここで何が間違っていますか?Javascript canvas.toDataUrl()新しいウィンドウで<img>要素に画像を送信

キャンバスの描画を保存する際に、新しいウィンドウを開き、ページ上に配置されたimg要素に.pngを表示することを試みました。

そこからダウンロードしたり、共有することができます。

私はこれまでこれを持っていましたが、img srcにはtoDataUrl()が設定されていません。

function saveDrawing() { 
    var url = canvas.toDataURL(); 
    window.open('saveimage.php'); 
    var placeholder = document.getElementById("placeholder"); 
    placeholder.src = url; 
} 

ありがとう!

答えて

4

document.getElementById("placeholder");は、新しく開いたウィンドウではなく現在のIDでそのIDを探しています。これは、ミスがある可能性があります

function saveDrawing() { 
    var url = canvas.toDataURL(); 
    w = window.open('saveimage.php'); 
    w.onload = function(){ 
     var placeholder = w.document.getElementById("placeholder"); 
     placeholder.src = url; 
    }; 
} 

、アイデアはあなたがwで新しいウィンドウへの参照を格納し、それがロードされるときに、アクセスが、それはDOMがあるということです: あなたがしなければならないすべては、参照は、新しく作成されたウィンドウの文書でありますイメージを変更するsrc

+0

ここにあるように、同じドメインから開いている他のウィンドウへのアクセスに制限はありません。 – Pointy

+0

本当に、私はそれが別のものだと思った理由は分かりません – aurbano

+0

それは同じドメインにあります。開いた窓などに焦点を合わせなければならないのですか? – cl0udc0ntr0l

関連する問題