我正在为 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 App UI 中显示的文档对象。我使用这个动态创建的文档作为MSApp.getHtmlPrintDocumentSource()的参数。不幸的是,无论我对本文档中的画布元素做什么,画布都不会在实际打印输出中显示渲染,也不会在单击选定打印机后在超级按钮栏中找到的简单预览窗口中显示渲染。
我的问题是:画布元素是否需要在浏览器窗口中显示其容器文档?您能否在动态创建的文档中操作画布元素,并期望在显示该文档时显示这些操作?