将样式对象复制到IE中的iframe

时间:2012-03-09 22:32:24

标签: jquery internet-explorer iframe printing

我正在制作一个小脚本来打印页面的一部分。我的想法是页面中有一个表格,我想将其复制到iframe和print中。问题是该表的一堆样式分散在样式表链接和<HEAD>标记中的原始样式对象之间。

所以我有这样的事情:

...
<link to stylesheet>
<style>
   #printable { font-size: 50px; }
</style>
...
</head>
<body>
Never print me.
<div id="printable">Please print only me</div>
Don't print me either
...

然后我将这个jQuery附加到一个按钮:

 var printable = $('#printable');

//make an iframe that's not visible on the screen
$('<iframe name="printer" id="printer" style="width:1px;height:1px;position:absolute;left:-10000px" >'+
  '<html><head></head><body>'+
  '</body></html></iframe>').load(function(){

    //when it loads, add the links and styles to it along with the printable div
    $(this).contents().find('head')
      .append($('link').clone())
      .append($('<style/>',{html:$('style').html()}))
    .end()
    .find('body')
      .append(printable.clone());

    //print only the iframe
    document.printer.focus();
    document.printer.print();
}).appendTo(document.body);

我的投诉是附加链接和样式的业务。在Chrome中,我可以在我的追加语句中使用更简单的$('link,style').clone(),但在IE中,似乎没有做任何事情 - 至少据我所见,样式不会进入iframe中。我之前已经看到了动态创建脚本标签的完全相同的问题,我想我正在尝试理解脚本/样式标签与其他任何东西之间的潜在差异(至少对于IE而言)。

0 个答案:

没有答案