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

Обсуждаются вопросы использования плагинов для jQuery, созданных сторонними разработчиками.

Модераторы: TRAHOMOTO, tuareg

Re: Print модального окна точнее его содержимого

Сообщение zandroid » 13 ноя 2010, 12:00

EGORR писал(а):Не... Никаких глюков...

А скажем такая ситуация, когда я в скрипте подцепляю клик кнопке. Если забирать элементы из body как есть (в объектном виде), то проблем, вроде бы, не должно быть. Я видел предлагаемое решение, работающее через innerHtml (тут строковые данные), вот тут наверняка будут глюки.
Аватар пользователя
zandroid
Модератор
 
Сообщений: 1164
Зарегистрирован: 21 янв 2010, 22:16
Откуда: Нижний Новгород

Re: Print модального окна точнее его содержимого

Сообщение CrashX » 13 дек 2010, 14:38

все же ищу метод щас думаю уже в сторону iFrame
мысли есть ? есть недоработаный плагин
щас пытаюсь его доработать

Код: выделить все
jQuery.jPrintArea=function(el)
  {
    var iframe=document.createElement('IFRAME');
    var doc=null;
    $(iframe).attr('style','position:absolute;width:0px;height:0px;left:-500px;top:-500px;');
    document.body.appendChild(iframe);
    doc=iframe.contentWindow.document;
    var links=window.document.getElementsByTagName('link');
    for(var i=0;i<links.length;i++)
      if(links[i].rel.toLowerCase()=='stylesheet')
        doc.write('<link type="text/css" rel="stylesheet" href="'+links[i].href+'"></link>');
    doc.write('<div class="'+$(el).attr("class")+'">'+$(el).html()+'</div>');
    doc.close();
    iframe.contentWindow.focus();
    iframe.contentWindow.print();
    alert('Printing...');
    document.body.removeChild(iframe);
  }



создать фрей можно более элегантно так
Код: выделить все
        $('<iframe />', {
          "name":"jprint",
          "id":"jprint",
          "src": ***
        }).appendTo('body');


но как передать в этот плагин что нужно взять src из ссылки с rel=#print href=''то грузить'
остаться в живых, отчаянный псих, не свой не чужой, последний ... иной
Аватар пользователя
CrashX
 
Сообщений: 32
Зарегистрирован: 13 сен 2010, 06:16
Откуда: undefine

Re: Print модального окна точнее его содержимого

Сообщение CrashX » 14 дек 2010, 13:45

Код: выделить все
(function($) {
  jQuery.fn.jprint = function() {
    if ($.browser.opera)
    {
      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 ? w : w[0].contentWindow).focus();
    setTimeout( function() {
      ($.browser.opera ? w : w[0].contentWindow).print();
      ($.browser.opera ? w.close() :$(w).remove());
    }, 1000);   
  };
})(jQuery);


переписал 3 плагина, и в этоге появился свой...
но замучался с хромом, первая петь норм проходит вторая нехочет (

вызов
Код: выделить все
/**
* Печать страницы
*  с rel='#print'
*/
function xprint() {
  $(document).ready(function() {
    $("a[rel^='#print']").click(function() {
      var open,index;
      $("a[rel^='#overlay']").each(function(i) {
        if($("a[rel^='#overlay']").eq(i).data('overlay').isOpened()) {
          open=true;
          index=i;
        }
      });
      if(open) {
       $("a[rel^='#print']").jprint();
      } else {
        window.focus();
        window.print();
      };
    });
  });
}
остаться в живых, отчаянный псих, не свой не чужой, последний ... иной
Аватар пользователя
CrashX
 
Сообщений: 32
Зарегистрирован: 13 сен 2010, 06:16
Откуда: undefine

Re: Print модального окна точнее его содержимого

Сообщение CrashX » 14 дек 2010, 13:53

пример http://www.remoza.ru/news/SubAll/read-6 ... html#print
нажимайте печать в модальном окне еще раз печать XD
в опере приходится открывать попап окно, в хроме косяк, невозможно 2-й раз печать сделать)
в ишаке работает) в ФФ не проверял)
остаться в живых, отчаянный псих, не свой не чужой, последний ... иной
Аватар пользователя
CrashX
 
Сообщений: 32
Зарегистрирован: 13 сен 2010, 06:16
Откуда: undefine

Пред.

Вернуться в Плагины jQuery

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1