Print модального (overlay) окна точнее его содержимого

Тема в разделе "Другие языки", создана пользователем CrashX, 13 ноя 2010.

Модераторы: Цукер
  1. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    связка jquery + tools.overlay


    http://www.crashx.is.com/news/SubAll/read-4-novost_2.html

    при нажатии печать открывается модельное окно, так тупо все отлючено те все панели и прочая муть... и я хочу именно те данные печатать


    снипет вроде
    этого не помогает, тк он печатет активное окно...
    HTML:
    
    /**
     * Печать страницы
     *  с rel='#print'
     */
    $(document).ready(function() {
      $("a[rel^='#print']").click(function() {
        $('#overlay').focus();
        window.print();
        return false;
      });
    });
    

    при открытии в отдельном окне не в модальном все норм печатает
    при нажатии в модальном окне нет действия

    при добавлении оnClick='javascript:window.print();return false;' печатает основную страницу с модальным окном а нужно
    что бы при открытии в отдельно окне печать была возможна, и при открытии в модальном печатались данные из модельного окна...


    есть идея в iframe загружать, или же как то можноли отправить на печать данные только из целевого дива, или целевой страницы...

    подскажите...
     
  2. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    Код:
    (function($) {
      jQuery.fn.jprint = function() {
        if ($.browser.opera && $.browser.version >'11.01')
        {
          
          var w = window.open("","jprint");
          w.document.open();
          var doc = w.document;
        }
        else
        {
          var wid = "jprint_" + (Math.random() * 99999).toString();
          var w = $('<iframe />', {
            "name":wid,
            "id":wid,
            "frameBorder": 0,
            "scrolling": 'no',
            "src": 'about:blank'
          }).appendTo('body');
          w.css({ position: "absolute", width: "0px", height: "0px", left: "-600px", top: "-600px" });
          var doc = w[0].contentDocument ? w[0].contentDocument : ( w[0].contentWindow ? w[0].contentWindow.document : w[0].document);
        }
        if ($("link[media=print]").length > 0)
        {
          $("link[media=print]").each( function() {
            doc.write("<link type='text/css' rel='stylesheet' href='" + $(this).attr("href") + "' media='print' />");
          });
        }
        else
        {
          $("link").each( function() {
            doc.write("<link type='text/css' rel='stylesheet' href='" + $(this).attr("href") + "' />");
          });
        }
        doc.write($('#modalbox').clone().html());
        doc.close();
    
        (($.browser.opera && $.browser.version >'11.01') ? w : w[0].contentWindow).focus();
        setTimeout( function() {
          (($.browser.opera && $.browser.version >'11.01') ? w : w[0].contentWindow).print();
          (($.browser.opera && $.browser.version >'11.01') ? w.close() :$(w).remove());
        }, 1000);   
      };
    })(jQuery);
    
    работает кому надо юзайте