用javascript打印问题..... div来作为空字符串
问题描述:
我正在使用JavaScript函数打印页面。我不断得到字符串作为空值,我不知道如何.....这里是代码。我所拥有的div被称为divSheet,并将其设置为可见的false以开始......当您加载信息时,它会在divSheet中创建一个表并将其设置为true。任何想法为什么它说getPrint函数strid是空的?谢谢!用javascript打印问题..... div来作为空字符串
<asp:ImageButton runat="server" ID="imageBtnPrint" Style="z-index: 100" ImageUrl="~/Images/printerIcon.gif"
OnClientClick="javascript:getPrint('divSheet')" ToolTip="Print" />
function getPrint(strid)
{
var pp = window.open();
var prtContent = document.getElementById(strid);
pp.document.writeln('<HTML><HEAD><title>Print Confirmation Sheet</title><LINK href=PrintStyle.css type="text/css" rel="stylesheet">')
pp.document.writeln('<LINK href=PrintStyle.css type="text/css" rel="stylesheet" media="print"><base target="_self"></HEAD>')
pp.document.writeln('<body MS_POSITIONING="GridLayout" bottomMargin="0" leftMargin="0" topMargin="0" rightMargin="0">');
pp.document.writeln('<form method="post">');
pp.document.writeln('<TABLE width=100%><TR><TD></TD></TR><TR><TD align=right><INPUT ID="PRINT" type="button" value="Print" onclick="javascript:location.reload(true);window.print();"><INPUT ID="CLOSE" type="button" value="Close" onclick="window.close();"></TD></TR><TR><TD></TD></TR></TABLE>');
pp.document.writeln(document.getElementById(strid).innerHTML);
pp.document.writeln('</form></body></HTML>');
}
答
我想那是因为你是从你的主HTML生成一个子窗口,子页面无法直接访问父的变量。
你可以把它用在父HTML到您的div的ID设置局部变量,然后从你的JS函数访问:window.opener.<variable name>
事情是这样的: (警告:未经测试)
...
var divId;
function getPrint(strid)
{
divId = strid;
var pp = window.open();
var prtContent = document.getElementById(window.opener.divId);
...
...
}
你能分享整个页面代码吗,上面的'divSheet'元素缺失。 – Saket
它有太多的角色让我发帖....虐待把它的缩短版本在这里。 – Lucas