新窗口,内容来自开启页面上的模态内容

时间:2009-08-04 03:06:01

标签: javascript jquery

我想我不会这么做,对jquery来说很新。 我有一个隐藏着3个食谱的页面。当点击配方A的链接时,它会以模态打开。我希望能够只打印食谱的内容。所以我打开一个新窗口(非模态)并尝试将配方写入其中(取决于选择的配方)

这是我正在使用的代码

     $('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“&gt;”; \ n

3 个答案:

答案 0 :(得分:23)

我认为您正在寻找的是以下内容:

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;

    });
});

Marius有一个部分正确的答案 - 你的html字符串中确实有一个javascript错误,但是即使错误没有被抛出,内容也不会被追加,因为你试图在之前附加食谱#myprintrecipe div甚至在新窗口中。

希望这有帮助。

答案 1 :(得分:0)

问题在于你的字符串。将其更改为:

$('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;

     });

问题是你在字符串中有一个“字符,它结束了字符串。脚本引擎感到困惑并抱怨错误信息。

答案 2 :(得分:0)

改变:

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>";

并记下双引号(“)