Impression du contenu d'un iframe créé dynamiquement à partir de la fenêtre parente
J'ai une page avec une liste de liens et une div qui sert d'espace réservé pour les pages, les liens à la. Chaque fois que l'utilisateur clique sur un lien d'une iframe est créé dans le div et son attribut src obtient la valeur du lien attribut href simple et clair, une sorte de pages web externes, de la galerie.
Ce que j'ai un problème avec l'impression du contenu de l'iframe. Pour ce faire, j'utilise ce code:
fonction PrintIframe() { les frames["nom"].focus(); les frames["nom"].print(); }
Le problème semble être que l'iframe est créé dynamiquement par JQuery - quand j'ai insérer un iframe à droite dans le code html, le navigateur imprime la page externe. Mais avec le même code injecté par JavaScript, rien ne se passe. J'ai essayé d'utiliser JQ 1.3 " en direct de l'événement sur le lien "Imprimer", sans succès. Est-il un moyen de surmonter cela?
source d'informationauteur certainlyakey
Vous devez vous connecter pour publier un commentaire.
Suppose que c'est ce que votre iframe ressemble:
C'est comment vous le faites à l'aide de jQuery:
et ce est la façon dont vous le faites à l'aide de JavaScript natif:
J'ai eu un problème avec l'impression du contenu de l'iframe. Afin de réaliser cela, utilisez le code ci-dessous:
Par exemple, vous avez iframe:
Puis js pour imprimer contenu de l'iframe appel de cette fonction (fonctionne à la fois dans ie et d'autres navigateurs):
Du code de fonction:
J'ai essayé et a été en mesure de reproduire le problème. Ce que j'ai remarqué c'est que lorsque l'appel de la fonction d'impression de l'iframe n'est pas chargé. j'ai testé cela en vérifiant la valeur de innerHTML lors de l'appel de PrintIFrame(). Pour remédier à cela, vous pouvez utiliser setTimeOut pour appeler la fonction x millisecondes plus tard:
Cela a fonctionné pour moi
MODIFIER
Étrange, j'ai eu une alerte de mon code de test qui semble pour le faire fonctionner. Lorsque je l'ai sorti, il n'a pas de travail. Désolé 🙁
De toute façon, cela devrait le faire à l'aide de jQuery pour attacher un gestionnaire d'événement load de l'iframe. Je l'ai testé sur IE8 et ça fonctionne:
Hmm puis-je obtenir ce droit? Vous avez seulement besoin de changer la source de l'IFrame conduit à?
Peut-être le même domaine restriction empêche le JavaScript de votre exécution. La même restriction de domaine permet de JavaScript dans le cadre d'Une (ou de la fenêtre principale) pour interagir (tels que .print()) avec cadre B si A et B sont du même domaine. Vérifiez votre console d'erreur JavaScript. Si vous obtenez quelque chose comme une exception de sécurité /erreur de permission, alors il est probablement parce que la même restriction de domaine.
J'ai trouvé cette recherche sur le web
et cela a changé
twigstechtips
C'est un assez vieux thread mais j'ai trouvé une solution pour ce.
J'ai ajouté dormir dans jquery, donc il n'a pas l'impression de vide de la fenêtre, elle nécessite quelques secondes pour recharger le nouvellement remplacé contenu.