我希望能够为我的用户提供一个按钮来仅打印我的 dojo/dijit 应用程序的特定部分。在打印方面似乎普遍缺乏文档和示例。
例如,我有一个特定的 dijit.layout.ContentPane
,其中包含我想要打印的内容,但我不想打印文档的其余部分。我在网络上看到了一些纯 JavaScript 示例,其中 node.innerHTML
被读入“隐藏”iframe,然后从那里打印。我怀疑这会奏效,但我想知道是否有更以 dojo 为中心的打印方法。
有什么想法吗?
最佳答案
我决定继续阅读 <iframe>
并从那里打印,但因为我使用的是呈现的 dojox.gfx 表面,所以在某些浏览器中无法从 objective-c ontentPane 直接读取到不可见的 iframe。所以我所做的是将 iframe 的“src”设置为重新呈现图表的页面,然后在完成时自行打印出来。在主文档中它看起来像这样:
<iframe id="printIFrame4" src="#" style="width: 0px; height:0px;
border: none; background: transparent"></iframe>
<button dojoType="dijit.form.Button" style="margin-top: -3px;" id="buttonPrintMap4">
Print...
<script type="dojo/method" event="onClick" args="event">
dojo.byId("printIFrame4").src = "logmap/docMap.php?id=4";
</script>
</button>
然后页面执行必要的 dojo 操作以重新绘制图表,然后在加载后执行以下操作:
this.focus();
this.print();
然后进行打印。
关于javascript - dojo/dijit 和打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2396027/