Aller au contenu

[JS] hauteur d'une page exterieure


Sujets conseillés

Posté

Bonjour,

J'aimerai savoir s'il est possible d'obtenir la hauteur (height) d'une page exterieure, pour intégrer cette page dans une iframe avec la hauteur lui correspondant.

Voila ce que je voudrais faire exactement :

J'ai un forum qui est a une adresse http://www.123.com et j'aimerai l'intégrer dans mon site qui a une adresse http://www.1234.com. Le forum s'intégrerai alors directement dans le design de mon site.

J'ai déjà pensé a mettre mon forum sur le même serveur et l'intégrer via ?page=forum/index.php comme les autres pages de mon site, mais j'ai trouvé la solution de l'iframe plus facile. Le problème étant la barre de défilement de l'iframe.

J'espère avoir été clair :) J'attends vos réponses, merci.

Posté (modifié)

Yo !

la réponse est simple et claire : NON :)

En javascript, tu ne pourra pas accéder aux objets, méthodes, propriétés HTML d'une page qui se trouve sur un autre domaine que ton javascript. Quand tu essaye de faire cela tu auras en retour un erreur te disant un truc du style : "Access denied". C'est une mesure de sécurité basique intégrée dans les navigateurs depuis un moment maintenant (IE j'en suis en fait j'ai jamais fais attention sous Firefox).

Perso je n'ai jamais de trouvé de solution pour contourner cette protection ...

++

Modifié par AntiStatic
Posté

J'ai reussi a obtenir le résultat que je voulais sur ici mais quand on change de page en cliquant sur login par exemple, la hauteur de l'iframe est toujours définie sur la premiere page, et la couleur du <body> (ici, grise) qui remplie le reste de la page.

Il faudrait que la hauteur de l'iframe s'adapte en fonction de chaque page chargée dans l'iframe. A voir si c'est réalisable ?

Posté

Yo !

tu peux essayer en mettant un onload sur la iframe. Donc en gros ca donnerait un truc du style :

<iframe onload="LeNomDeTaFonction();" src="forum/index.php" id="laframe" style="border:0px;" width="100%" ></iframe>

et dans la fonction javascript :

<script>

function LeNomDeTaFonction() {
'Tu récupère la hauteur de la page contenu dans la iframe
'Tu passe cette hauteur à la iframe
}
</script>

Et le tour sera joué. Par contre un truc que je comprend pas : pourquoi tu veux utiliser un iframe alors que tu pourrais surement tout mettre directement dans le body ? Parce qu'avec une iframe tu vas pénaliser ton référencement et l'accessibilité à ton site. Et en parlant d'accésibilité, ton site est completement éclaté sous Internet Explorer !

Bon courage !

Posté
J'ai reussi a obtenir le résultat que je voulais sur ici mais quand on change de page en cliquant sur login par exemple, la hauteur de l'iframe est toujours définie sur la premiere page, et la couleur du <body> (ici, grise) qui remplie le reste de la page.

Il faudrait que la hauteur de l'iframe s'adapte en fonction de chaque page chargée dans l'iframe. A voir si c'est réalisable ?

Sous Firefox, ca marche nickel, mais... désolée, sous Opéra et sous IE 6, la hauteur de l'iFrame n'est pas adaptée, dès la 1ere page :s

Posté

J'ai déjà essayé de tout mettre dans le body en incluant mon forum via ?page=forum/index.php mais le problème c'est qu'il faut modifier phpbb a cause des header() qui ne peuvent pas être déclarés après une sortie HTML...

Modifier phpbb de A à Z m'a plutot découragé surtout qu'il faille changer tous les liens en ?page etc... C'est la raison pour laquelle j'ai pensé à l'iframe.

Après vient le problème d'IE (evidemment), si je n'arrive pas à trouver de solution pour IE et FF, je reviendrai au départ c'est a dire laisser le forum en dehors du site :(

Et en parlant d'accésibilité, ton site est completement éclaté sous Internet Explorer !

On sort un peu du sujet de ce topic, mais je tente quand même :)

Le problème que pose mon site sur IE, c'est que les champs des espaces membres et rechercher sont complètement décalés vers la droite... Je pense que ca vient du fait que les éléments sont positionnés en flottant mais je n'ai pas trouvé de solution adéquate pour obtenir le même résultat entre IE et FF. Peut-être que je m'y suis mal pris pour former mon header au départ. Si vous avez une proposition, n'hésitez pas :blush:

Merci à vous :)

Posté

OK je comprend mieux pourquoi tu utilises une iframe !

Pour ton site éclaté sous IE, dans ton code HTML cherche cette phrase "MARGIN-LEFT: 645px;" et supprime la pour voir si ca résoud pas ton pb.

Autre chose, j'ai regardé ton code et c'est pas joli, joli :) Tu devrais mettre tes styles dans ta feuille de style plutot que directement dans le code. Ca te simplifera la maintenance de ton site, tes pages HTML peseront moins lourd et chargerons plus vite. On sort du sujet initial mais c'est important ! Parenthese fermée !

Ensuite pour ton pb de resize de iframe, le mieux est peut être de remonter peu à peu ta page. Tu crée une page vide et tu mets juste dedans ta iframe et la code javascript pour la redim. Tu la travail jusque ca marche en testant sous un max de navigateur pour être sur du résultat et tu verra tu y verra plus clair !

Posté
Modifier phpbb de A à Z m'a plutot découragé surtout qu'il faille changer tous les liens en ?page etc... C'est la raison pour laquelle j'ai pensé à l'iframe.

C'est vrai que c'est un peu lourd, mais si tu maitrise les feuilles de style, il n'est pas impossible, loin de la, de créer ton propre thème qui reprendra la présentation de ton site (sans avoir à retoucher le nom des pages)

Si tu n'as pas encore plongé dans la structure des thèmes, ce site donne quelques explications de base bien utiles pour comprendre la strucutre de phpbb : http://www.aginum.net/phpbb/

Posté
Pour ton site éclaté sous IE, dans ton code HTML cherche cette phrase "MARGIN-LEFT: 645px;" et supprime la pour voir si ca résoud pas ton pb.

Je suppose que tu parles de :

<div style="float:left; margin-left: 645px;margin-top:-35px;font-size:10px;width:250px;">

Mais tu verras que cette <div> englobe le formulaire de moteur de recherche pour le positionner dans l'espace "Rechercher", donc je ne pense pas que ce soit le problème mais du fait que IE ne place pas les float au même endroit que firefox, avec une margin identique.

Peut-être que je devrai mis prendre avec un tableau pour positionner mes éléments dans les cadres "Membres" et "Rechercher", après tout ce sont des données tabulaires non ?

Si je n'arrive pas a trouver de solution valable sur plusieurs navigateurs pour l'iframe, j'adopterai ta méthode soho, merci je n'y avais pas pensé :)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...