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>
答案 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