2 votes

Obtenir la première iFrame visible dans une fenêtre et l'imprimer

Une situation un peu absurde... Ce n'est vraiment que pour IE8 et les versions inférieures.

Quoi qu'il en soit, j'ai une iFrame qui apparaît (que je ne peux pas contrôler / créer un ID pour), merci Telerik !

// The only way I can grab it specifically would be:
var iframe = document.frames ? document.frames[id] : document.getElementById(id);
                                             // ^ you grab by ID in IE
var ifWin = iframe.contentWindow || iframe;

Mais comme je n'ai pas l'ID, je ne peux pas utiliser cette méthode... J'ai essayé plusieurs méthodes différentes, sans succès.

// tried either window. / or document.
document.frames.print();
window.frames.print();
document.frames[0].print();

Je veux juste récupérer la première iFrame -> et l'imprimer.

Note complémentaire : window.print() fonctionne dans tout sauf IE8 et inférieur. Pour IE, il imprime uniquement le contenu de la fenêtre externe / parent, au lieu de l'iFrame sur laquelle le focus est actuellement effectué.

Des idées ?


Mise à jour : Donc d'une certaine manière, faire window.frames[2].print() dans le Console IE fonctionne (et saisit la bonne image). Lorsque j'essaie de mettre ce code dans le Javascript, j'ai exactement la même chose : window.frames[2].print() IE interprète ce code en notation par points window.frames.2 et ne fonctionne pas et revient comme null ou pas un objet. Taper la même notation de point dans la console ne fonctionne pas et me donne juste "Expected ;" (ce qui n'a aucun sens).

5voto

David Lewis Points 772

Avez-vous essayé

document.getElementsByTagName('iframe')[0]

J'ai testé cela dans une console IE8 et cela fonctionne (mais le problème peut subsister dans votre mise à jour).

Quant à l'autre partie de votre question concernant l'impression de la première visible iframe, vous voudrez probablement regarder les paramètres scrollX et scrollY et les paramètres offsetTop et offsetLeft, non ?

1voto

pozs Points 6034

La plupart de ces vieux collections en javascript a un méthode * appelé item alors essayez ceci :

window.frames.item(2).print();

(*) Ne vous étonnez pas, typeof window.frames.item sera 'object' .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X