var c = win.body.first().dom.innerHTML;  
      var printer = win.body.last().dom.contentWindow;
      printer.document.body.innerHTML = c;
      printer.print();
谁帮俺注释一下以上语句的意思 哈哈 按对dom不是很熟
-----------------------------------------------------
上面的语句好像把以下整个页面的html内容都取过来  
我想只取文本框中的内容(不想要打印整个页面的所有内容) 并按一定的顺序排列、定位 
所有的文本框都有id   
如何取值 并赋予printer  ????因为这个是要求套打!!!请大家务必写详细点 谢谢

解决方案 »

  1.   

    用的是Ext框架,
    win 是Ext的窗口对象
    win.body 得到 Ext.Element对象,
    win.body.first()得到 HTMLElement 对象,body的一个子HTML元素节点(此处仍是Ext包装过的HTML元素)
    win.body.first().dom得到 HTMLElement 对象 实际浏览器中标准的的HTML DOM元素
    win.body.first().dom.innerHTML 就是 该元素内部的HTML代码了, 
    假设win.body.first().dom是指<div> <span>xxx</span> </div>的话,
    win.body.first().dom.innerHTML 就得到 <span>xxx</span>
    -------------------
    win.body.last()类似,
    win.body.first().dom 得到的HTML DOM元素一定是一个iframe, iframe有 contentWindow对象,即该iframe内的DOM 窗体,printer 就是引用该窗体
    printer.document.body.innerHTML = c; //将上述元素中的HTML代码复制到iframe的body元素值中,就是在iframe里显示上面的HTML内容
    printer.print(); // 实现iframe里内容的打印
      

  2.   

    hookee解释的很详细啊 谢谢hookee 我是知道了但是 他是把所有的元素都复制给了iframe(printer.document.body.innerHTML = c; 
    )  我只想取文本框中的内容 赋于iframe 就可以了  ,比如我只想取页面的交易单编号 给iframe就可以了
    应该怎么做呢?
      

  3.   

    用Ext的API, Ext.getCmp("xx_id").getValue()一个个取值,然后自己拼接字符串格式,最后赋值给innerHTML
      

  4.   


    我用这样 var jydbh = Ext.getCmp("jydbh").getValue();
                  var jydzt = Ext.getCmp("jydzt").getValue();
                  var jhrq = Ext.getCmp("shrq").getValue();已经可以取到值  了怎么赋值给innerHTML呢???
    hookee 帮忙连接  赋值一下
      

  5.   

    我用以下语句可以实现取到文本框的值了
    var jydbh = Ext.getCmp("jydbh").getValue();
    var jydzt = Ext.getCmp("jydzt").getValue();
    var jhrq = Ext.getCmp("shrq").getValue();
    var c = jydbh + jydzt + jhrq ;                                        
    var printer = AddPublishwin.body.last().dom.contentWindow;
    printer.document.body.innerHTML = c;但是他是连在一起的 如下图 但是我要按照票据的格式打印怎么办呢?象下图那样 把取到的值绝对定位到票就的格式中去