как создать мод печати с использованием javascript, jquery и т. д. - PullRequest
4 голосов
/ 10 июля 2011

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

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

1 Ответ

10 голосов
/ 10 июля 2011

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

Вам нужно использовать jquery, чтобы получить содержимое, которое вы хотите напечатать (вероятно, $('body').html();), затем создать всплывающее окно модального div и добавить iframe в модальный div. Затем добавьте в тело iframes (через $('iframe').document.body.append();) содержимое для печати. Затем вызовите print в iframe ($('iframe').window.print;)

Дайте мне знать, если это имеет смысл?

РЕДАКТИРОВАТЬ : Вот пример кода, работающего с тем, что, я полагаю, вы хотите. (убедитесь, что вы включили jquery перед этим кодом javascript)

    <body>
        <script>
        $(document).ready(function(){
            $('#printmodal').click(function(){

                // variables
                var contents = $('#printable').html();
                var frame = $('#printframe')[0].contentWindow.document;

                // show the modal div
                $('#modal').css({'display':'block'});

                // open the frame document and add the contents
                frame.open();
                frame.write(contents);
                frame.close();

                // print just the modal div
                $('#printframe')[0].contentWindow.print();
            });
        });
        </script>
        <style>
            #modal {
                display: none;
                width: 100px;
                height: 100px;
                margin: 0 auto;
                position: relative;
                top: 100px;
            }
        </style>

        <!-- Printable div (or you can just use any element) -->
        <div id="printable">
            <p>This is</p>
            <p>printable</p>
        </div>

        <!-- Print link -->
        <a id="printmodal" href="#">Print Me</a>

        <!-- Modal div (intially hidden) -->
        <div id="modal">
            <iframe id="printframe" />  
        </div>
    </body>

jsfiddle: http://jsfiddle.net/tsdexter/ke2rqt97/

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