在点击链接的时候,进入的是含有两有IFREAME的嵌套页面,代码如下:
<frameset rows="50,*" cols="*" frameborder="no" border="0" framespacing="0">
  <frame src="search.aspx" name="searFrame" id="searFrame" title="searFrame" />
  <frame src="printCjb.aspx" name="printFrame" scrolling="YES" id="printFrame" title="printFrame" />
</frameset>
其中上面就是查询页面,关键代码如下
<input type="text" id="txtLsh" style="width:222px" onkeydown="return onKeyDown1();" />
<input id="btnSearch" type="button" style="width:101px;"   value="查询" onclick="javascript:gosearch()" />
<input id="btnPrint" type="button" style="width:101px;"  value="打印" onclick="javascript:goprint()" />
<script type="text/javascript" language="javascript">   
function goprint(){
            window.parent.frames['printFrame'].focus();
            window.parent.frames['printFrame'].print();
          }
        
        function gosearch(){
            var lsh=document.getElementById('txtLsh').value;
            window.parent.frames['printFrame'].location.href="PrintCjb.aspx?lsh="+escape(lsh); //将查询条件传递给要打印的页面,将值填充
           
        }
       function onKeyDown1(){
            if(event.keyCode==13){
                //***********************关键问题就是在这里,
                //在输入查询条件的时候,想实现查询,并自己调用打印
                //我的方法
                document.all.btnSearch.click(); //调用查询按钮的点击事件,结果正确显示,问题就在后面
                goprint() ;//如果直接调用打印,此时页面可能没有加载完成,调用打印过来,页面的值同样是空白,一直在线等候,希望高手帮忙解答,谢谢了! 我也想过使用setTimeout等,暂停执行没有打到想要的效果
                
        }
       }

解决方案 »

  1.   

    onkeydown="if(event.keyCode==13) {document.getElementById('btnLogin').click();return false;}"
      

  2.   

       在这里,你只是实际了回车查询,上面其实我也写了,和document.all.btnSearch.click(); 原理差不多,我要的效果,是回车后查询出结果,然后将printFrame页面打印出来!关键的问题是后面的打印,如今的问题查询并打印时,打印的内容还没有加载完成,依然是空白的。
      

  3.   

       或者换种想法,就是在查询后,让点击打印按钮的方法,延迟执行
        document.all.btnSearch.click(); 在进行查询过来,
        setTimeout(document.getElementById('btnPrint').click(),3000),这样能显打印界面,不过为什么看不到延迟的效果????
      

  4.   

      问题解决,此时实际上可以换个思维,就是在显示打印的显示添加onload事件,让他每次查询完就自己调用打印,不过此时,就涉及到判断页面的第一加载问题,实际上,解决的办法很简单!就是判断页面的文本框,或者标签,或者span之类是否有值,我这里是判断的span。
      ie支持outerText,firefox支持textContent 
    if (isIE) 

          var spanTest=document.getElementById('spanID');
          spanValue = spanTest.outerText;  
      } 
    else 

         spanValue  = spanTest.textContent;