2014-12-04 13 views
0

Для того, чтобы мой предварительный просмотр печати на «принять» моделирование, мне нужно, чтобы включить функцию в моем всплывающем окне, что я использую для печати:Как включить функцию JQuery внутри window.open

Функции Я использую для печати является:

$('#printPersonnel').click(function() { 
      var data = document.getElementById('personnelTable').outerHTML; 
      var mywindow = window.open('', data); 
      mywindow.document.write('<html><head><title>NORA Loading</title>'); 
      mywindow.document.write('<link rel="stylesheet" type="text/css" href="http://localhost:49573/Content/Site.css">'); 
      mywindow.document.write('<link rel="stylesheet" type="text/css" href="http://localhost:49573/Scripts/examples-offline.css">'); 
      mywindow.document.write('<link rel="stylesheet" type="text/css" href="http://localhost:49573/Scripts/kendo.rtl.min.css">'); 
      mywindow.document.write('<link rel="stylesheet" type="text/css" href="http://localhost:49573/Scripts/kendo.common.min.css">'); 
      mywindow.document.write('<link rel="stylesheet" type="text/css" href="http://localhost:49573/Scripts/kendo.dataviz.default.min.css">'); 
      mywindow.document.write('<link rel="stylesheet" type="text/css" href="http://localhost:49573/Scripts/kendo.dataviz.min.css">'); 
      mywindow.document.write('<link rel="stylesheet" type="text/css" href="http://localhost:49573/Scripts/kendo.default.min.css">'); 

      mywindow.document.write('</head><body>'); 
      mywindow.document.write(data); 
      mywindow.document.write('</body></html>'); 

      mywindow.document.close(); 
      mywindow.focus(); 
      mywindow.print(); 
      mywindow.close(); 
      return true; 
     }); 

Однако, мне нужно включить $(document).ready функцию для того, чтобы правильно добавить это форматирование (я использую сетку Telerik UI).

Это означает, что мне нужно включить теги сценариев в мой документ.

Моя проблема заключается в попытке добавить закрытый тег скрипта (он видит себя частью родительской страницы, а не внутри функции).

Любые предложения относительно того, как я мог бы достичь этой функциональности?


Я пытаюсь напечатать все в пределах определенной таблицы тега, который отформатирован на документ, готовый рассматривать как Telerik сетки на странице загрузки


Редактировать

Моя проблема связана с закрывающим тегом сценария mywindow:

mywindow.document.write('});'); 
mywindow.document.write('</script>'); //issue with this line/seen as esc sequence (i think) 

enter image description here

+0

могли бы вы предоставить код с включая '' ");' работа, может быть проблема, лежит внутри '$ .ready', тело, синтаксическая ошибка или что-то еще? – Zudwa

ответ

1

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

mywindow.document.write("<script>(function(){alert('1');})();<\/script>"); 
1

Вы можете разделить </script> на части, так что это не будет интерпретироваться как закрывающий тег:

mywindow.document.write("<script>(function(){alert('1');})();" + "<" + "/script>"); 
+1

IIRC, это должно исправить. *** ОБНОВЛЕНИЕ *** http://stackoverflow.com/a/236106/1414562 –

+0

@ A.Wolff вы правы. Кодирование '<' - даже лучший подход (IMHO). – Zudwa

Смежные вопросы