我正在使用javascript函数来打印页面。我一直把字符串作为空值,我不知道如何.....这里是代码。我所拥有的div被称为divSheet,并且设置为可见false以开始......当您加载信息时,它会在divSheet中创建一个表并将其设置为true。任何想法为什么它说getPrint函数中的strid为null?谢谢!
<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>');
}
答案 0 :(得分:0)
我认为这是因为您从主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);
...
...
}