Поддельный источник iframe для печати, чтобы избежать "about: blank" - PullRequest
1 голос
/ 02 марта 2010

Я создаю скрытый iframe специально для печати в IE6.

Вот основные наброски кода с вырезанной HTML-популяцией:

$('body').append('<iframe id="printIFrame"></iframe>');

$("iframe#printIFrame").attr('style','position:absolute;width:0px;height:0px;left:-500px;top:-500px;');

$("iframe#printIFrame").load(function()
{
    document.getElementById("printIFrame").contentWindow.document.title = "My Title";

    var iframe = document.getElementById("printIFrame");
    iframe.contentWindow.focus();
    iframe.contentWindow.print();

    $("iframe#printIFrame").remove();
});

Это работает довольно хорошо, за исключением уродливого «about: blank», которое отображается в левой нижней части каждой напечатанной страницы. Я предполагаю, что, поскольку я делаю этот iframe на лету, источник (как IE6 видит это) о: blank. Есть ли способ подделать src или изменить то, что там напечатано? Я попытался установить src прямо перед печатью, но очевидно, что это меняет фрейм на новую страницу и печатает это. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 02 марта 2010

Я нашел плагин ActiveX, который утверждает, что вы можете изменить верхний / нижний колонтитул распечатки на лету.

http://www.meadroid.com/sx_intro.asp

Кроме того, его можно изменить навсегда, перейдя в «Параметры страницы» из меню «Файл» в IE6. Однако я стараюсь по возможности избегать плагин ActiveX; Мне интересно, есть ли простой способ изменить верхний или нижний колонтитул через JavaScript. Есть другие идеи?

0 голосов
/ 02 марта 2010

Вы не можете сделать это, не изменив src заранее, как вы описали. Это IE, о котором мы говорим. Это единственный браузер минимум , который, скорее всего, будет поддерживать что-то необычное.

(Хотя, к сведению, я не слышал о возможности переопределить метаданные печати в любом другом браузере.)

...