2010-03-02 23 views
1

Je crée un iframe caché spécifiquement pour être utilisé pour l'impression dans IE6.Fake le src d'un iframe pour l'impression pour éviter "environ: vide"

Voici un aperçu de base du code avec une population HTML découpures:

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

Cela fonctionne très bien, sauf pour le laid « about: blank » qui montre en bas à gauche de chaque imprimé page. Je suppose que puisque je fais ce iframe à la volée la source (comme IE6 le voit) est sur: vide. Est-il possible de simuler le src ou de changer ce qui est imprimé là-bas? J'ai essayé de placer le src juste avant l'impression, mais évidemment cela change le iframe à une nouvelle page et l'imprime. Des idées?

Répondre

0

J'ai trouvé un plugin ActiveX qui prétend que vous pouvez modifier l'en-tête/pied de page de l'impression à la volée.

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

Alternativement, il peut être modifié de façon permanente en allant en page dans le menu Fichier dans IE6. Cependant j'essaie d'éviter un plugin ActiveX si possible; Je me demande s'il existe un moyen facile de changer l'en-tête ou le pied de page en javascript. D'autres idées?

0

Vous ne pouvez pas faire cela sans changer le src à l'avance, comme vous l'avez décrit. C'est IE dont nous parlons. C'est le seul navigateur moins susceptible de supporter quoi que ce soit de fantaisie, il pourrait s'en tirer sans support.

(Bien que, pour l'enregistrement, je n'ai pas entendu parler de pouvoir remplacer les métadonnées d'impression dans un autre navigateur, que ce soit.)