在弹出的模态窗口(子窗口)中调用IE的打印预览功能,结果IE弹出错误:“当前页面发生脚步错误...错误:不支持该命令  代码:0”,
     
    我的打印预览代码如下(打印没问题):
<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='-  打印  -' onclick='window.print();' class='noprint'/>
<input type='button' name='Submit2' value='-打印预览-' onclick='wb.execwb(7,1);' class='noprint'/>
        请朋友们共同研究.

解决方案 »

  1.   

    如果不用模态窗口(showModalDialog)打印预览是可以的
    母窗口代码
       a.html
    <HTML>
    <HEAD>
    <TITLE>showModelessDialogEX.htm</TITLE>
    <SCRIPT>
    var sUserName="";
    function fnCallDialog()

    showModalDialog("b.html",window,"status:false;dialogWidth:300px;dialogHeight:300px");
    }
    function fnUpdate()

    oName.innerText = sUserName;
    }
    </SCRIPT>
    </HEAD>
    <BODY>
    <P>Enter your first name: <SPAN ID="oName" STYLE="color:red;font-size:24">Joan</SPAN></P>
    <INPUT TYPE="button" VALUE="Display Modeless Dialog" onClick="fnCallDialog()">
    </BODY>
    </HTML>子窗口代码:
    b.html<HTML> 
    <HEAD>
    <TITLE>myDialog.htm</TITLE>
    <SCRIPT> 
    function fnGetInfo() { 
    var sData = dialogArguments; //父窗口
    sData.sUserName = oEnterName.value; 
    sData.fnUpdate(); 
    }
    function fnCancel() { 
    var sData = dialogArguments; 
    sData.sUserName = "Joan"; 
    sData.fnUpdate(); 
    }
    </SCRIPT>
    </HEAD> 
    <BODY>
    <LABEL FOR="oEnterName" ACCESSKEY="f">
    Enter your <SPAN STYLE="text-decoration:underline">F</SPAN>irst Name</LABEL>
    <OBJECT classid='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2' height=0 id=wb name=wb width=0></OBJECT>
    <INPUT ID=oEnterName><BR><BR>
    <INPUT VALUE="Apply" TYPE=button onClick="fnGetInfo();"> 
    <INPUT VALUE="Ok" TYPE=button onClick="fnGetInfo();window.close();"> 
    <INPUT VALUE="Cancel" TYPE=button onClick="fnCancel();window.close();"> 
    <input type='button' name='Submit2' value='-打印预览-' onclick='wb.execwb(7,1);' class='noprint'/>
    </BODY> 
    </HTML>
      

  2.   

    楼主,碰巧我们的一个项目也用到了,呵呵。这个问题可废了不少时间。 这样的,对于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> 
     
     
     
    本篇文章来自<A href='http://www.soidc.net'>IDC专家网</a> 原文链接:http://www.soidc.net/discuss/1/081201/16/611573_1.html