<script language="javascript" type="text/javascript">
     function Print()
     {
          var Bdhtml=window.document.body.innerHTML;
          var sprnstr="<!--startpint-->"; 
          var eprnst="<!--endprint-->";
          var start=Bdhtml.indexOf(sprnstr)+17;
          var end = Bdhtml.indexOf(eprnst);
          var prnhtml=Bdhtml.substring(start,end);
          var OpenWindow = window.open("about:blank");
          OpenWindow.document.body.innerHTML=prnhtml; 
          OpenWindow.print();
      }
    </script>就是这一句:OpenWindow.document.body.innerHTML=prnhtml; 
在firefox下面不起作用。。
我的用意是在原页面获取一段文字,付给新打开的窗口,然后在新窗口中打印这些文字,在ie下这段代码没问题,但是在firefox下,打开的新页面内容是空的!

解决方案 »

  1.   

    var OpenWindow = window.open("about:blank");
    OpenWindow.document.write("<html><head></head><body></body></html>");
      OpenWindow.document.body.innerHTML=prnhtml;
    这样写看看
      

  2.   

    OpenWindow.document.write("<html><head></head><body></body></html>");
    就是把body标签先写里面,然后再访问对象。没有ff,所以我也没试。
      

  3.   

    你可以变通下,
    父页面
    <script language="javascript" type="text/javascript">
         function print1()
         {
              
              var OpenWindow = window.open("1.htm","","modal=yes");
          }
          
        </script>
        <body onload="print1()">
        <!--startpint-->sdfsdfsdfsdfsdfsddddddddddddddddddddddddddd
        <!--endprint-->
    子页面
    <script language=javascript>
    function show(){
    var Bdhtml=opener.document.documentElement.innerHTML;
    alert(Bdhtml)
              var sprnstr="<!--startpint-->"; 
              var eprnst="<!--endprint-->";
              var start=Bdhtml.indexOf(sprnstr)+17;
              var end = Bdhtml.indexOf(eprnst);
              var prnhtml=Bdhtml.substring(start,end);
              document.documentElement.innerHTML=prnhtml
     
        }
    </script>
    <body onload=show()>
      

  4.   

    在FF下这的确不好处理,你不太好通过var OpenWindow = window.open("about:blank");
    这个OpenWindow来控制新窗口呢
    我觉得大概是打开新窗口需要时间,而执行完这条语句后就接着执行OpenWindow.document.body.innerHTML=prnhtml;这条了,而新窗口还没有初始化好,所以就无效吧
    一般这种情况在FF下我都是在新窗口中调用window.opener来获取父窗口里的值,再进行处理
      

  5.   

    新建一个文件1.html,在同一个目录下的另一个文件里面写入以下代码:
    <script>
    var str = "父窗口的内容";
    var openWin = window.open('1.html');
    openWin.document.write("<html><head><title>测试一下</title></head><body>");
    openWin.document.write(str);
    openWin.document.write("<body>");
    </script>