用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>'); 

    } 
+0

你能分享整个页面代码吗,上面的'divSheet'元素缺失。 – Saket

+0

它有太多的角色让我发帖....虐待把它的缩短版本在这里。 – Lucas

+0

Lucas

我想那是因为你是从你的主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); 
    ... 
    ... 
}