如何打印DIV的内容并在其中包含<script>标记</script>

时间:2014-12-30 06:08:05

标签: javascript jquery

Print the contents of a DIV中提供的解决方案对我有用,但是除了传递样式之外,我还想将一些jQuery代码传递给Print Preview页面。我怎么做?我尝试添加mywindow.document.write('$(document).ready(function(){/ * do this * /});'); 但它没有按预期工作。 这是我的代码:

<script type="text/javascript">

   function PrintElem(elem)
   {
       Popup($(elem).html());
   }

   function Popup(data) 
   {
       var mywindow = window.open('', 'my div', 'toolbars=0,width=900,height=700,left=200,top=100,scrollbars=1,resizable=1');
       mywindow.document.write('<html><head><title>my div</title>');
       mywindow.document.write('<link rel="stylesheet" href="/static/css/checkout/orderScreen.css" media="screen" />');
       mywindow.document.write('<link rel="stylesheet" href="/static/css/checkout/orderPrint.css" media="print" />');
       mywindow.document.write('</head><body >');
       mywindow.document.write(data);
       mywindow.document.write('</body></html>');          
       mywindow.focus();           
       mywindow.document.close();

       return true;
   }

</script>

与传递样式表的方式类似,我也想传递一些jQuery代码来检查字符串的打印预览页面的URL,如果字符串存在则隐藏页面上的类。 jQuery代码看起来像这样:

<script type="text/javascript">
   $(document).ready(function () {
     if(window.location.href.indexOf("myString") > -1) {
        $('.myClass').css('display', 'none');
     }     
  });
</script>

1 个答案:

答案 0 :(得分:1)

您需要将/替换为\/,以使document.write()能够按预期工作。

工作代码段:

document.write("<script src='https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/2.1.1\/jquery.min.js'><\/script><script>$(document).ready(function(){ alert('Hello World!'); });<\/script>"); // notice the esacpe "\" character