Новое окно с контентом из модального контента на открывающей странице - PullRequest
6 голосов
/ 04 августа 2009

Я думаю, что не совсем правильно, потому что я новичок в jquery. У меня есть страница с 3 рецептами на нем скрыты. при нажатии на ссылку рецепта А он открывается в модальном режиме. Я хочу иметь возможность распечатать только содержание рецепта. поэтому я открываю новое окно (немодальное) и пытаюсь записать в него рецепт (в зависимости от того, какой рецепт выбран)

это код, который я использую

     $('a.new-window').click(function(){

    var recipe =  window.open('','RecipeWindow','width=600,height=600');
     $('#recipe1').clone().appendTo('#myprintrecipe');
    var html = "<html><head><title>Print Your Recipe</title></head><body><div id="myprintrecipe"></div></body></html>";
recipe.document.open();
recipe.document.write(html);
recipe.document.close();

      return false;

     });

но возвращает ошибку. Я думаю, что это близко, но не совсем правильно. ошибка: отсутствует ; до заявления [Прервать эту ошибку] ​​var html = "Print ... =" myprintrecipe ">"; \ n

Ответы [ 3 ]

23 голосов
/ 04 августа 2009

Я думаю, что вы ищете следующее:

jQuery(function($) {
    $('a.new-window').click(function(){

    var recipe =  window.open('','RecipeWindow','width=600,height=600');
    var html = '<html><head><title>Print Your Recipe</title></head><body><div id="myprintrecipe">' + $('<div />').append($('#recipe1').clone()).html() + '</div></body></html>';
    recipe.document.open();
    recipe.document.write(html);
    recipe.document.close();

    return false;

    });
});

У Мариуса был частично правильный ответ - у вас была ошибка javascript в вашей html-строке, но контент не был бы добавлен в любом случае, даже если ошибка не возникла, потому что вы пытались добавить рецепт до #myprintrecipe div был даже в новом окне.

Надеюсь, это поможет.

0 голосов
/ 04 августа 2009

изменение:

var html = "<html><head><title>Print Your Recipe</title></head><body><div id="myprintrecipe"></div></body></html>";

до:

var html = "<html><head><title>Print Your Recipe</title></head><body><div id='myprintrecipe'></div></body></html>";

и запишите двойные кавычки (")

0 голосов
/ 04 августа 2009

Проблема в вашей строке. Измените это на это:

$('a.new-window').click(function(){

    var recipe =  window.open('','RecipeWindow','width=600,height=600');
     $('#recipe1').clone().appendTo('#myprintrecipe');
    var html = "<html><head><title>Print Your Recipe</title></head><body><div id=\"myprintrecipe\"></div></body></html>";
recipe.document.open();
recipe.document.write(html);
recipe.document.close();

      return false;

     });

Проблема в том, что внутри строки был символ ", который завершает строку. Механизм сценария запутался и пожаловался на сообщение об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...