不对.楼上的.我要把iframe作为一个对象传给js方法.
js方法里取html我试了
window.frames[iframe2].document
window.frames[iframe2].document.documentElement
document.all('iframe2')
都说不是对象.到底哪个是对象呢?

解决方案 »

  1.   

    在IE中,如果想打印Frame中的内容,用window.print(frameId)好像不行,不过可以调用下面JS中的printFrame方法实现,即printFrame(FrameId),FrameId就是你要打印的Frame~<script  language=“JScript“>
    if ( printIsNativeSupport() )
      window.print2 = window.print;
      window.print = printFrame;// main stuff
    function printFrame(frame, onfinish) {
      if ( !frame ) frame = window;  function execOnFinish() {
        switch ( typeof(onfinish) ) {
          case "string": execScript(onfinish); break;
          case "function": onfinish();
        }
        if ( focused && !focused.disabled ) focused.focus();
      }  if ( frame.document.readyState !== "complete" &&
           !confirm("The document to print is not downloaded yet! Continue with printing?") )
      {
        execOnFinish();
        return;
      }  if ( window.print2 ) { // IE5
        var focused = document.activeElement; 
        frame.focus();
        if ( frame.print2 ) frame.print2();
        else frame.print();
        execOnFinish();
        return;
      }  var eventScope = printGetEventScope(frame);
      var focused = document.activeElement;  window.printHelper = function() {
        execScript("on error resume next: printWB.ExecWB 6, 1", "VBScript");
        printFireEvent(frame, eventScope, "onafterprint");
        printWB.outerHTML = "";
        execOnFinish();
        window.printHelper = null;
      }  document.body.insertAdjacentHTML("beforeEnd",
        "<object id=\"printWB\" width=0 height=0 \
        classid=\"clsid:8856F961-340A-11D0-A96B-00C04FD705A2\"></object>");  printFireEvent(frame, eventScope, "onbeforeprint");
      frame.focus();
      window.printHelper = printHelper;
      setTimeout("window.printHelper()", 0);
    }// helpers
    function printIsNativeSupport() {
      var agent = window.navigator.userAgent;
      var i = agent.indexOf("MSIE ")+5;
      return parseInt(agent.substr(i)) >= 5 && agent.indexOf("5.0b1") < 0;
    }function printFireEvent(frame, obj, name) {
      var handler = obj[name];
      switch ( typeof(handler) ) {
        case "string": frame.execScript(handler); break;
        case "function": handler();
      }
    }function printGetEventScope(frame) {
      var frameset = frame.document.all.tags("FRAMESET");
      if ( frameset.length ) return frameset[0];
      return frame.document.body;
    }
    </script>
      

  2.   

    我是要弹出iframe那个页面,然后才打印的.
    只需要传递iframe中需要打印部分的对象就可以了window.frames["iframe2"].document.all.printtable
    window.frames["iframe2"].document.all('printtable')printtable是iframe中的一个table的id可是为什么报语法错误呢?
    这两个写法有问题吗?