1.这是如何在弹出窗口中完成的,不会弄乱当前页面(客户端脚本):
function print(widget, title){
var content=widget.getElement().innerHTML;
var win = window.open('', 'printWindow', 'height=600,width=800');
win.document.write('<head><title>'+title+'/title></head>');
win.document.write('<body>'+content+'</body>');
win.document.close();
win.focus();
win.print();
win.close();
}
按钮的 onclick 处理程序是:
print(widget.root.descendants.PageFragment1, 'test');
在此示例中,PageFragment1 是当前页面上的页面片段,通过添加具有名称hidden
和定义的样式来隐藏.hidden{display:none;}
(这与在应用制作工具中似乎从 DOM 中删除项目的可见不同)。完美运行...
2.您无法在另一个选项卡中打开应用程序中的页面。原则上,这样的事情会做到这一点:
var w=window.parent.parent;
w.open(w.location.protocol+'//'+w.location.host+w.location.pathname+'#PrintPage', '_blank');
但由于应用程序在距启动页面两层嵌套的框架中运行,并且来源不同,您将无法访问所需的 url(上述代码导致跨域框架访问错误)。因此,您必须对 URL 进行硬编码,该 URL 在部署时会发生变化,因此它会很快变得丑陋。无论如何,您都不想这样做,应用程序的加载时间应该会阻止您无论如何都想这样做。