Windows 8 アプリ用の JavaScript を書いています。動的に作成されたドキュメントの子であるキャンバス要素に描画をレンダリングしようとしています。
新しいドキュメントを返すこの関数があります:
initPrintDoc: function () {
var emptyDoc = document.implementation.createDocument('http://www.w3.org/1999/xhtml', 'html', null),
emptyBody = document.createElement('body'),
emptyCanvas = document.createElement('canvas'),
debugDiv = document.createElement('div'),
debugMsg = document.createTextNode("[PRINT] : This is a test print source.");
//Initialize attributes for elements
emptyBody.setAttribute('id', 'pdf-container');
emptyCanvas.setAttribute('id', 'render-output');
debugDiv.setAttribute('id', 'debug-output');
debugDiv.appendChild(debugMsg);
emptyBody.appendChild(debugDiv);
emptyBody.appendChild(emptyCanvas);
emptyDoc.documentElement.appendChild(emptyBody);
return emptyDoc;
},
返されたドキュメント オブジェクトは、実行時に Windows 8 アプリ UI に表示されるドキュメント オブジェクトではありません。この動的に作成されたドキュメントをMSApp.getHtmlPrintDocumentSource()のパラメーターとして使用しています。残念ながら、このドキュメント内にあるキャンバス要素に何をしても、キャンバスは実際の印刷出力や、選択したプリンターをクリックした後のチャーム バーにある単純なプレビュー ウィンドウにレンダリングを表示しません。
私の質問は次のとおりです。canvas 要素では、コンテナー ドキュメントをブラウザー ウィンドウに表示する必要がありますか? 動的に作成されたドキュメントでキャンバス要素を操作し、そのドキュメントを表示したときにそれらの操作が表示されることを期待できますか?