записать содержимое в определенной части нового окна, используя jQuery - PullRequest
1 голос
/ 31 декабря 2011

У меня есть эти коды в моих проектах, чтобы открыть новое окно для отображения, а затем распечатать таблицу результатов из моего первого окна:

$('a.print_btn').click(function(e) {
    var elementId = $(this).attr('id');
    var elementToPrint = $("#report_" + elementId).html();
    var printWin = window.open("print.php?id="+elementId, "Print");
    $(printWin.document.body).html(elementToPrint);
}); 

В этом коде #report_elementId указывает на набор полей, который содержитмоя таблица информации.Если я использую приведенный ниже код, я вижу все содержимое таблицы:

alert(elementToPrint);

Так что пока все в порядке.Но последняя строка кода не работает и ничего не пишется в окне printWin .Я не знаю почему: (

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

Кстати, мне нужно записать содержимое в определенный div (id="myDiv"). Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 31 декабря 2011

Попробуйте это:

  var printWin = window.open("print.php?id="+elementId, "Print");
  $(printWin.document).ready( function() {
     $('div#myDiv').html(elementToPrint); 
  }

Я предполагаю, что print.php? Id = [что-то] работает, т.е. не заканчивается ошибкой 500 или 404 ...

Как яЯ не уверен, в каком контексте выполняется обратный вызов готов, давайте попробуем быть более явным:

  var printWin = window.open("print.php?id="+elementId, "Print");
  $(printWin.document).ready( function() {
     $(printWin.document).find('div#myDiv').html(elementToPrint); 
  }
0 голосов
/ 31 декабря 2011

Попробуйте

printWin.body.innerHTML = elementToPrint;
document.getElementById('myDiv').innerHTML = elementToPrint;
...