Печать с проблемами JavaScript ..... div имеет вид пустой строки - PullRequest
0 голосов
/ 23 сентября 2011

Я использую функцию JavaScript для печати страницы.Я продолжаю получать строку как нулевое значение, и я не уверен, как ..... вот код.У меня есть div, который называется divSheet, и для него устанавливается видимое значение false, чтобы начать ... при загрузке информации он создает таблицу в divSheet и устанавливает ее в значение trueЛюбые идеи, почему он говорит, что strid в функции getPrint является нулевым?Спасибо!

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

    }

1 Ответ

0 голосов
/ 23 сентября 2011

Я думаю, это потому, что вы порождаете дочернее окно из основного HTML, и дочерняя страница не может напрямую обращаться к переменным родителя.

Вы можете установить локальную переменную в родительском HTML для идентификатора вашего div, а затем получить доступ к ней из функции JS, используя:

как то так: (предупреждение: не проверено)

...
var divId;
function getPrint(strid)  
{ 
    divId = strid;
    var pp = window.open();
    var prtContent = document.getElementById(window.opener.divId);
    ...
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...