Étant donné que l'iframe sans bordures peut être intégré de manière transparente à la page Web, il est possible de mettre à jour certaines données de la page sans actualiser la page. Cependant, la taille de l'iframe n'est pas aussi « évolutive » que la couche, ce qui pose des problèmes. lors de l'utilisation. Problème, trop n'est pas bon lors du réglage de la hauteur de l'iframe, et moins c'est encore pire. Maintenant, laissez-moi vous expliquer un moyen d'ajuster dynamiquement la hauteur de l'iframe, principalement la fonction JS suivante :
code de programme
fonction SetWinHeight(obj)
{
var gagner=obj;
si (document.getElementById)
{
si (gagner && !window.opera)
{
si (win.contentDocument && win.contentDocument.body.offsetHeight)
win.height = win.contentDocument.body.offsetHeight;
sinon si (win.Document && win.Document.body.scrollHeight)
win.height = win.Document.body.scrollHeight;
}
}
}
Enfin, lors de l'ajout d'une iframe, vous ne pouvez pas perdre l'attribut onload. Bien entendu, l'identifiant doit également correspondre au win dans la fonction.
code de programme
solution iframe pour une autre situation (super simple)
Remarque importante : l'adresse de la page Web que vous devez renseigner dans src= doit se trouver sur le même site que cette page, sinon une erreur se produira et indiquera "Accès refusé !" (En fait, cela est dû au problème inter-domaines de Js qui conduit à un refus d'accès de)
J'ai déjà rencontré ce problème. J'ai cherché en ligne pour obtenir la réponse et j'ai constaté que de nombreuses personnes ont également rencontré ce problème. Je vais maintenant partager la solution.
1. Créez un fichier bottom.js et entrez le code suivant (seulement deux lignes)
parent.document.all("nom d'ID de cadre").style.height=document.body.scrollHeight;
parent.document.all("Nom de l'ID du cadre").style.width=document.body.scrollWidth;
Le nom de l'ID du cadre est ici l'ID de l'Iframe, par exemple :
<IFRAME id="nom d'ID de cadre" name="gauche" frameBorder=0 scrolling=no src="XXX.asp" width="100%"></IFRAME>
2. Ajoutez chacun des fichiers inclus dans votre site Web
<langage de script = "JavaScript" src = "bottom.js"/></script>
3. OK, finissons-en !
J'ai réussi le test sous WINXP et IE6. C'est très simple !
Implémenter la hauteur adaptative de l'iframe
Réalisez la hauteur adaptative de l'iframe, qui peut s'adapter automatiquement à la longueur de la page pour éviter le phénomène de barres de défilement apparaissant sur la page et l'iframe en même temps.
code de programme
//** l'iframe s'adapte automatiquement à la page**//
//Entrez une liste de noms d'iframe dont vous souhaitez ajuster automatiquement la hauteur en fonction de la hauteur de la page
// Séparez l'ID de chaque iframe par une virgule. Par exemple : ["myframe1", "myframe2"], il ne peut y avoir qu'un seul formulaire, donc aucune virgule n'est nécessaire.
//Définit l'ID de l'iframe
var iframeids=["test"]
//Si le navigateur de l'utilisateur ne prend pas en charge l'iframe, s'il faut masquer l'iframe, oui signifie caché, non signifie non caché.
var iframehide="oui"
fonction dyniframesize()
{
var dyniframe=nouveau tableau()
pour (i=0; i { si (document.getElementById) { // Ajuster automatiquement la hauteur de l'iframe dyniframe[dyniframe.length] = document.getElementById(iframeids); si (dyniframe && !window.opera) { dyniframe.style.display="bloc" if (dyniframe.contentDocument && dyniframe.contentDocument.body.offsetHeight) //Si le navigateur de l'utilisateur est NetScape else if (dyniframe.Document && dyniframe.Document.body.scrollHeight) //Si le navigateur de l'utilisateur est IE dyniframe.height = dyniframe.Document.body.scrollHeight; } } //Selon les paramètres définis, gérer les problèmes d'affichage des navigateurs ne prenant pas en charge l'iframe if ((document.all || document.getElementById) && iframehide=="no") { var tempobj=document.all? document.all[iframeids] : document.getElementById(iframeids) tempobj.style.display="bloc" } } } si (window.addEventListener) window.addEventListener("load", dyniframesize, false) sinon si (window.attachEvent) window.attachEvent("onload", dyniframesize) autre window.onload=dyniframesize Rétrolien : http://tb.blog.csdn.net/TrackBack.aspx?PostId=1608312
dyniframe.height = dyniframe.contentDocument.body.offsetHeight;