弹出的模态窗口(子窗口)中调用IE的打印预览功能,结果IE弹出错误:“当前页面发生脚步错误...错误:不支持该命令.

window.showModalDialog(theURL+"&ttime="+new Date().getTime(),wbxstr,"dialogWidth=986px;dialogHeight=600px;center:yes;scroll:no;status:no");

  我的打印预览代码如下(打印没问题): 
<OBJECT classid='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2' height=0 id=wb name=wb width=0> </OBJECT> 
<div style="margin-left:150px"> 
<input type='button' name='Submit1' value='- 打印 -' οnclick='window.print();' class='noprint'/> 
<input type='button' name='Submit2' value='-打印预览-' οnclick='wb.execwb(7,1);' class='noprint'/>  
   

关注中,我现在也遇到这个问题了,楼主有没解决?有的话告诉一下哇。


楼主,碰巧我们的一个项目也用到了,呵呵。这个问题可废了不少时间。 这样的,对于WebBrowser控件的定义,不要放到弹出的窗体b.html里,而放在执行showModalDialog命令的窗体里a.html里。 通过window.showModalDialog()传递给弹出来的窗口,然后再使用,就没有问题了。 a.html片段: HTML code
<script> window.onunload = function(){ alert("window.onunload"); } function popup(){ window.showModalDialog('b.html',WebBrowser,'dialogHight:500px;dialogWidth:650px;center:yes;resizeable:no;help:no;status;no'); }</script>......<object id="WebBrowser" name="WebBrowser" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height="0" width="0"> </object> 被弹出的窗体b.html片段 HTML code

<script> var args=window.dialogArguments; var wb = args; function print(){ wb.ExecWB(6,6); } </script> 


由于网站模块开发的需要 遇到在弹出的模态窗口中实现打印功能的问题 把自己的解决方法记录如下: 方法一、使用对象实现在弹出模态窗口后自动打印模态窗口中的内容 由于将对象放在弹出的模态窗口中无法实现打印功能,所以将对象放在弹出模态窗口的页面中。 view plaincopy to clipboardprint? parent.php: 上述代码可以实现打印功能,可是打印出的内容却是弹出模态窗口的页面的内容而不是模态窗口的内容。一直没有找到解决的方法,还望有解决方法的朋友可以帮忙。 方法二、在弹出的模态窗口中添加打印按钮,点击打印按钮后改变按钮的css属性(为避免把按钮打印出来),使用window.print()来打印模态窗口中的内容。

解决方法: a.aspx 中window.showModalDialog 调用方法传递 dialogArguments属性为 window 对象 window.showModalDialog("b.aspx",window,"....") ; b.aspx 中 var openobj = window; if(typeof(window.dialogArguments) == "object") { openobj = window.dialogArguments; } openobj.open("c.aspx"); 这样处理 c.aspx中 Session就不会丢失了绝对管用,我用过了

解决方法:通过window.open()打开子页面,就可以正常使用IE的打印预览,打印了。通过opener.method()可以调用父窗口方法与子窗口通信,简单来说就是可以把父窗口的数据传入子窗口
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC的视图打印/预览功能基于CView::OnFilePrint和CView::OnFilePrintPreview这两个函数。 如果要对用户自定义对话框(模态)内的视图进行打印,直接调用该视图的CView::OnFilePrint即可,弹出的“选择打印机”对话框同样也是模态对话框,覆盖在用户对话框上。 如果要对用户对话框内的视图进行预览,直接调用该视图的CView::OnFilePrintPreview后,预览视图(MFC CPreviewView类实例)内虽然预览正常,但是挡住了用户对话框。由于用户对话框是模态的,导致预览视图上的“打印...”、“上一页”、“下一页”、“放大”、“缩小”、“单页/双页”和“关闭”等按钮均无法响应鼠标点击,处于“假死”状态。 解决方法: 第一个解决方法是先关闭用户对话框,再启动预览,详见http://download.csdn.net/detail/oliver_zheng/7639379 第二个解决方法仍然保持用户对话框,但是由于对话框为模态,无法利用主框架窗口CMainFrame作为预览框架,因此要另外创建并显示一个框架窗口(CFrameWnd的派生类),作为预览窗口。 另外创建的框架窗口类名为CPrintPreviewFrameWnd,其对应的单文档视图是CViewPrintPreview类,利用这些关联信息创建一个单文档模板,利用此单文档模板创建框架窗口,并在其内嵌视图(CViewPrintPreview类)保存原主框架(CMainFrame)、用户对话框和其上需要打印的视图(CTestView)。然后基于CViewPrintPreview类启动预览打印(具体过程详见第一个解决办法)。由于CViewPrintPreview的各个相关虚函数诸如OnPreparePrinting、OnBeginPrinting、OnPrepareDC、OnPrint和OnEndPrinting都被重载,用于调用真正需要打印的视图CTestView的各自函数,因此CViewPrintPreview实际上只是个“介”视图,是连接预览视图(MFC CPreviewView类)和CTestView的桥梁。 当打印或者预览结束后,关闭自行创建的框架窗口CPrintPreviewFrameWnd,利用CViewPrintPreview类实现保存的信息恢复主框架和用户对话框,恢复打印/预览前的环境。 代码(实现了第二个解决方法)在VC2010下编译通过。第一个解决方法的源码详见http://download.csdn.net/detail/oliver_zheng/7639379

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值