Как открыть предварительный просмотр IE11 с помощью кнопки click ng2 [duplicate]

Чтобы определить, почему код PHP не работает в коде JavaScript , нам нужно понять, что такое клиентский и серверный язык и как они работают.

Серверные языки (PHP и т. д.) : они извлекают записи из баз данных, поддерживают состояние через HTTP-соединение без состояния и выполняют много вещи, требующие безопасности. Они находятся на сервере, эти программы никогда не имеют своего исходного кода для пользователя

Image from wikipedia_http://en.wikipedia.org/wiki/File:Scheme_dynamic_page_en.svg [/g16] image attr

Хотя с другой стороны Клиентский язык на стороне клиента (например, JavaScript) находится в браузере и запускается в браузере, Сценарии на стороне клиента обычно относятся к классу компьютерных программ в Интернете, которые выполняются на стороне клиента, в веб-браузере пользователя, а не на стороне сервера .

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

Итак, когда вы делаете запрос HTTP на сервере, чем сервер, сначала внимательно читает файл PHP, чтобы узнать, есть ли какие-либо задачи, которые необходимо выполнить, и отправлять ответ на клиентскую сторону и снова, как @deceze сказал * Как только PHP закончил вывод ответа, сценарий заканчивается, и на сервере ничего не произойдет, пока не появится новый запрос HTTP . *

Graphical representation [/g17]

Источник изображения

Итак, что мне делать, если мне нужно вызвать PHP? Это зависит от того, как вам это нужно: либо перезагружая страницу, либо используя вызов AJAX.

  1. Вы можете выполнить перезагрузку страницы и отправить запрос HTTP
  2. вы можете сделать вызов AJAX с помощью JavaScript, и это не требует перезагрузки страницы

Хорошо Чтение:

  1. Википедия:
  2. Википедия: скрипты на стороне клиента
  3. Мадара Учиха: разница между клиентской стороной и программированием на стороне сервера

55
задан Rich Bennema 23 October 2008 в 16:33
поделиться

3 ответа

Вы не можете, Предварительный просмотр является особенностью браузера и поэтому должен быть защищен от вызова JavaScript, поскольку это будет угрозой безопасности.

Вот почему ваш пример использует Active X, который обходит проблемы безопасности JavaScript.

Вместо этого используйте таблицу стилей печати, которую вы уже должны иметь, и покажите ее для экрана media =, вместо печати = print.

Прочитайте Alist Apart: переход на печать для хорошей статьи по теме стилей печати. ​​

34
ответ дан alex 24 August 2018 в 23:31
поделиться
  • 1
    Статья о ALA переместилась: alistapart.com/articles/goingtoprint – Roman 26 September 2009 в 17:26
  • 2
    @Thomas Я обновил ссылку. – alex 5 September 2011 в 04:50
  • 3
    Хотя это хорошая статья, она не затрагивает его проблемы. У нас есть клиент, который не хочет научить своих пользователей ударять Ctrl + P или File - & gt; Распечатайте, чтобы на экране появилась кнопка печати. – knight0323 19 October 2011 в 18:56
  • 4
    Если у вас есть расширение или дополнение Firefox, имеющее доступ к компонентам браузера, и вам нужно запустить Предварительный просмотр, вы можете использовать: PrintUtils.printPreview(PrintPreviewListener); – Oleg Vaskevich 20 February 2012 в 06:36
  • 5
    Просто из любопытства, не могли бы вы объяснить, что делает предварительный просмотр печати угрозой безопасности, а печать - нет? Мне кажется, что есть много примеров существующего JavaScript-javascript. Каким будет риск безопасности конкретного браузера, добавляющего window.printPreview ()? – dallin 25 October 2013 в 01:07

Это можно сделать с помощью javascript. Скажем, ваш код html / aspx идет следующим образом:

<span>Main heading</span>
<asp:Label ID="lbl1" runat="server" Text="Contents"></asp:Label>
<asp:Label Text="Contractor Name" ID="lblCont" runat="server"></asp:Label>
<div id="forPrintPreview">
  <asp:Label Text="Company Name" runat="server"></asp:Label>
  <asp:GridView runat="server">

      //GridView Content goes here

  </asp:GridView
</div>

<input type="button" onclick="PrintPreview();" value="Print Preview" />

Здесь, нажав кнопку «Предварительный просмотр», мы откроем окно с данными для печати. Обратите внимание, что forPrintPreview является идентификатором div. Функция предварительного просмотра печати выглядит следующим образом:

function PrintPreview() {
 var Contractor= $('span[id*="lblCont"]').html();
 printWindow = window.open("", "", "location=1,status=1,scrollbars=1,width=650,height=600");
 printWindow.document.write('<html><head>');
 printWindow.document.write('<style type="text/css">@media print{.no-print, .no-print *{display: none !important;}</style>');
 printWindow.document.write('</head><body>');
 printWindow.document.write('<div style="width:100%;text-align:right">');

  //Print and cancel button
 printWindow.document.write('<input type="button" id="btnPrint" value="Print" class="no-print" style="width:100px" onclick="window.print()" />');
 printWindow.document.write('<input type="button" id="btnCancel" value="Cancel" class="no-print"  style="width:100px" onclick="window.close()" />');

 printWindow.document.write('</div>');

 //You can include any data this way.
 printWindow.document.write('<table><tr><td>Contractor name:'+ Contractor +'</td></tr>you can include any info here</table');

 printWindow.document.write(document.getElementById('forPrintPreview').innerHTML);
 //here 'forPrintPreview' is the id of the 'div' in current page(aspx).
 printWindow.document.write('</body></html>');
 printWindow.document.close();
 printWindow.focus();
}

Обратите внимание, что кнопки «печать» и «отмена» имеют класс «без печати» css, поэтому эти кнопки не будут отображаться в печати. ​​

3
ответ дан empiric 24 August 2018 в 23:31
поделиться

Я думаю, что лучшее, что возможно в кросс-браузерном JavaScript, - window.print(), которое (в Firefox 3 для меня) вызывает диалог «печать», а не диалог предварительного просмотра.

21
ответ дан user 24 August 2018 в 23:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: