Références mutuelles entre les frames
Tous les frames d'une page sont fournis sous la forme d'une collection en tant qu'attributs de l'objet window Par exemple : window.frames représente la collection de tous les frames de la page, qui. est identique à l'objet formulaire, les objets lien, les objets image, etc. sont similaires, mais la différence est que ces collections sont des attributs du document. Ainsi, pour référencer un sous-frame, vous pouvez utiliser la syntaxe suivante :
Parmi eux, le mot window peut également être remplacé ou omis par self. En supposant que frameName soit le premier cadre de la page, les méthodes d'écriture suivantes sont équivalentes :
Chaque cadre correspond à une page HTML, ce cadre est donc également une fenêtre de navigateur indépendante. Il possède toutes les propriétés d'une fenêtre. La soi-disant référence au cadre est également une référence à l'objet fenêtre. Avec cet objet window, vous pouvez facilement opérer sur les pages qu'il contient, par exemple en utilisant l'objet window.document pour écrire des données sur la page, en utilisant la propriété window.location pour changer la page dans le cadre, etc.
Ce qui suit présente les références mutuelles entre les différents niveaux de frameworks :
1. Référence du frame parent au frame enfant
Connaissant les principes ci-dessus, il est très simple de référencer le frame enfant à partir du frame parent, c'est-à-dire :
Ceci fait référence au sous-cadre nommé frameName dans la page. Si vous souhaitez référencer un sous-cadre au sein d'un sous-cadre, selon la nature du cadre référencé, qui est en fait l'objet fenêtre, vous pouvez l'implémenter comme ceci :
2. Référence du cadre enfant au cadre parent
Chaque objet fenêtre possède un attribut parent qui représente son cadre parent. Si le cadre est déjà un cadre de niveau supérieur, window.parent représente également le cadre lui-même.
3. Références entre cadres frères
Si deux cadres sont des sous-cadres d'un même cadre, ils sont appelés cadres frères et peuvent se référencer via le cadre parent. Par exemple, une page comprend 2 sous-cadres :
Le niveau du framework est pour le framework de niveau supérieur. Lorsque les niveaux sont différents, tant que vous connaissez le niveau auquel vous vous trouvez ainsi que le niveau et le nom de l'autre frame, vous pouvez facilement accéder les uns aux autres en utilisant les propriétés de l'objet window référencé par le frame, par exemple :
est similaire à l'attribut parent. L'objet window a également un attribut top. Il représente une référence au cadre de niveau supérieur, qui peut être utilisée pour déterminer si un cadre lui-même est un cadre de niveau supérieur, par exemple :
Modifier la page de chargement du frame
La référence au frame est la référence à l'objet window A l'aide de l'attribut location de l'objet window, vous pouvez modifier la navigation du frame, par exemple :
window.frames[0].location= "1.html";
Cela redirigera la page du premier cadre de la page vers 1.html En utilisant cette propriété, vous pouvez même utiliser un lien pour mettre à jour plusieurs cadres.
Référencement de variables et de fonctions JavaScript dans d'autres frameworks
Avant d'introduire les techniques de référencement de variables et de fonctions JavaScript dans d'autres frameworks, examinons le code suivant :
Si vous exécutez ce code, une fenêtre "hello, ajax!" apparaîtra, résultat de l'exécution de la fonction hello(). Alors pourquoi hello() est-il devenu une méthode de l'objet window ? Parce que toutes les variables globales et fonctions globales définies dans une page sont membres de l'objet window. Par exemple :
Vous pouvez ajouter une déclaration comme celle-ci à côté des produits affichés dans show.html :
Ajouter au Shopping Che
où le lien représente le cadre de navigation. Le tableau arrOrders est défini dans la page link.html pour stocker l'identifiant du produit. La fonction addToOrders() est utilisée pour répondre à l'événement de clic. du lien [Achat] à côté du produit. Il Le paramètre reçu id représente l'identifiant du produit Dans l'exemple, il s'agit d'un produit avec l'identifiant 32068 :