2009-11-10 13 views
0

Je cherche un moyen d'afficher une page Web à l'intérieur d'un div d'une autre page Web.
Je peux aller chercher la page Web avec CURL, mais comme elle a une feuille de style externe lorsque j'essaie de l'afficher, elle apparaît sans toutes ses propriétés de style.
Je me souviens que Facebook utilisé cette technique avec des liens partagés (vous avez vu la page qui était liée à un en-tête facebook) a fait quelques tests infructueux jquery mais je suis à peu près aucune idée de la façon de continuer ..
je sais peut être fait avec des cadres mais je toujours ici que c'est une bonne pratique pour éviter les cadres, donc je suis un peu confus
des idées comment travailler cela?afficher la page web à l'intérieur d'une autre page Web sans cadre

Répondre

2

Si vous souhaitez afficher le contenu de l'autre site Web exactement comme ils sont rendus dans ce site, alors les cadres sont, dans ce cas, le meilleur (le plus facile) à faire.

Facebook et Google utilisent tous deux cette technique pour afficher les pages tout en conservant leur marque/barre de navigation au-dessus de l'autre site.

+0

Merci pour cela, ira avec la solution de cadre. Savez-vous par hasard qu'il est possible d'activer la fermeture du cadre 'en-tête' et que l'utilisateur reste avec la page d'origine? –

+0

@Yaniv Voulez-vous dire qu'il est possible d'envelopper visuellement votre page sur l'autre page plutôt que de simplement faire une bannière d'en-tête? Si oui, alors oui. Je recommande de regarder iframe et ses nombreuses implémentations. –

+0

Eh bien, après avoir enquêté pendant un moment on dirait que c'est très rare car iframe ne va pas ajuster sa hauteur en fonction de son contenu .. il y a quelques solutions de contournement mais la plupart d'entre elles ne fonctionneront pas si le contenu iframe autre domaine (ce qui est dans mon cas) .. bummer .. devra y réfléchir à nouveau –

1

Je vais deviner que Facebook utilisait encore un iFrame, juste avec aucune bordure et un en-tête bien placé en dehors de celui-ci. La raison pour laquelle je devine que c'est parce que si la page extérieure a sa propre feuille de style, il y a une forte probabilité que vos styles et leurs styles s'affrontent et ne montrent pas les choses correctement.

Pour que les styles de ne pas entrer en conflit tout sur les deux extrémités faudrait être extrêmement détaillée, non seulement des styles génériques appliqués à tous les paragraphes, etc ...

1

Je suis d'accord que l'utilisation de cadres serait probablement la meilleure solution pour toi problème. mais si vous voulez toujours éviter les cadres et placer le contenu dans un div avec l'ID externalConent, vous pouvez demander les feuilles de style de la même manière que les autres contenus et préfixer chaque règle avec "#externalContent". enregistrez ces feuilles de style sur votre serveur et incluez-les dans votre page. avec un peu plus de personnalisations, cela devrait fonctionner. je dois admettre que cette solution sonne assez étrange ... eh bien, elle l'est. mais c'est la seule façon dont je vois de faire ce que vous demandez.

+0

Vous devrez également changer toutes les références de classe HTML .. Cela semble un peu exagéré juste pour afficher une page Web externe.(Jamais écrit un analyseur HTML et CSS Parser?) – Earlz

+0

ouais cela ressemble à un gros mal de tête :) iframe ce sera .. :) merci –

0

Si vous ne pouvez pas utiliser un cadre ou iframe, essayez:

  • extrait le code HTML à l'intérieur du corps et de l'insérer dans la DIV de destination
  • extraire les sections et l'en-tête

Ce n'est pas très propre, mais ça va certainement marcher, vous pouvez insérer un forum phpBB d'une autre manière dynamique en utilisant cette technique, jetez un oeil à http://www.clearerimages.com/forum/ pour un exemple.

Questions connexes