Comment remplacer l'impression par navigateur standard et imprimer un iframe par défaut
J'ai une documentation type de page avec une iframe à l'intérieur. Je suis en train de remplacer la norme d'impression du navigateur (Ctrl + p) pour imprimer le contenu d'une iframe.
Je sais comment faire pour imprimer une iframe de contenu à l'aide de javascript:
window.frames['webcontent'].focus();
window.frames['webcontent'].print();
Je sais comment le faire exécuter javascript, avant l'impression, par exemple comme décrit ici: Vérifier quand un utilisateur a sélectionné pour imprimer à l'aide de javascript
Tout conseiller?
Grâce
source d'informationauteur Burjua | 2014-07-25
Vous devez vous connecter pour publier un commentaire.
Il n'est pas possible (à l'aide de Javascript). Il y a quelque support expérimental pour l'utilisateur de lancer l'impression des événements dans les navigateurs modernes, mais ceux ne sont pas annulables ("de simples événements"), de sorte que la totalité de la page s'imprime toujours même si vous intervenir code personnalisé pour imprimer le cadre de l'intérêt.
Compte tenu de cette limitation, votre meilleur pari est probablement pour offrir aux utilisateurs un gros bouton qui déclenche votre image personnalisée de la fonction d'impression (voir
printContentFrameOnly
ci-dessous, le feu sans arguments) et l'espoir qu'ils vont utiliser le bouton au lieu de ctrl-p.Si il serait être possible, ce serait le moyen de le faire (basé sur cette réponse):
Frère, cela peut être facilement atteint grâce à CSS: Voir thisJSfiddle: Testé
Laissez un Fichier HTML:
L'idée est de définir le contenu de l'iframe quelque part sur la page, et d'imprimer UNIQUEMENT que le contenu, en cachant le contenu original.
Cela peut être fait par l'obtention de l'iframe contenu lorsque Ctrl+P de l'événement est lancé (via JavaScript), et d'imprimer uniquement de son contenu (via CSS @media type).
Code HTML:
Code CSS:
Code JavaScript:
Vous pouvez définir un fichier css pour l'impression:
MODIFIER
Mybad na pas testé.
Mais c'est de travailler comme un charme
La seule façon que je peux penser à est de cacher tout le contenu dans le document (à l'exception de l'iframe et la rendre adaptée à l'ensemble du document.
J'ai utilisé délai d'attente ( méchant je sais ) parce qu'au moins, chrome 38 ne pas envoyer l'événement keyup après un ctrl+p
Salut peut-être ce code va vous aider..
et appeler la fonction PrintElem('iframe') sur votre page.