2011-04-07 5 views
1

je suis consultant une page dans un iframe.Following est le balisage:ajouter du contenu à iframe

<iframe src="/home/index" width="700px" height="300px"/> 

Maintenant, en utilisant jquery je suis en train d'ajouter du contenu d'une autre page à ce iframe:

$('iframe').bind('load',function() 
{ 

$('iframe).contents().find('body').load('/user/profile'); 
}); 

Le contenu de la page (utilisateur/profil) est rendu sauf les fichiers javascript, c'est-à-dire que la section head de la page 'user/profile' contient des fichiers javascript comme jquery.js, profile.js etc.J'ai vérifié le contenu de iframe dans firebug.Il y a aucune référence à ces fichiers js. S'il vous plaît aider.

Répondre

0

Lorsque jQuery ajoute du contenu contenant des balises script, ces balises sont supprimées. Le code en leur sein est exécuté sans être inséré dans le DOM. Ceci est fait parce que Internet Explorer cassera parfois quand vous essayerez de faire ceci. De plus, vous demandez pourquoi vous n'obtenez pas le contenu de l'élément head sur /user/profile ajouté à la body de la page iframe. Êtes-vous vraiment surpris que cela ne fonctionne pas comme prévu?

Puisque vous remplacez tout le contenu de l'iframe, pourquoi ne pas changer la page vers laquelle il pointe? Je ne peux pas vraiment voir pourquoi vous faites cela avec Javascript.

0

Cela ne fonctionnera pas parce que vous mettez l'élément head dans le corps - pas comment le HTML fonctionne.

Vous pouvez faire

$('iframe').contents().find('html').load('/user/profile'); 

à la place ....

EDIT:

lonesomeday fait un très bon point. Pourquoi ne pas simplement changer le src des iframes?

$('iframe').attr('src', '/user/profile');