Code JavaScript simple pour déterminer si une page Web est dans un iframe
Ce qui suit est un simple extrait de code JavaScript pour vérifier si la fenêtre est dans un iframe. Il est utile pour certaines fonctions qui peuvent utiliser des URL dans la barre d'adresse de la page. Le code est le suivant:
var isInIframe = (window.location != window.parent.location) ? true : false;
lectures connexes:
FAQ sur jQuery et Iframes (FAQ)
Pour utiliser jQuery pour vérifier si la page Web est chargée dans un iframe, vous pouvez utiliser les propriétés window.self
et window.top
. Si la page Web est chargée dans un iframe, window.self
ne sera pas égal window.top
. Voici un extrait de code simple:
if (window.self !== window.top) { // 网页在 iframe 内 } else { // 网页不在 iframe 内 }
window.self
et window.top
en javascript? Dans JavaScript, window.self
fait référence à la fenêtre actuelle, tandis que window.top
se réfère à la fenêtre de niveau supérieur dans la hiérarchie de la fenêtre. Si la page Web est chargée directement dans le navigateur, window.self
et window.top
sera la même. Cependant, si la page Web est chargée dans un iframe, window.self
se référera à la fenêtre IFRAME, et window.top
fera référence à la fenêtre du navigateur principal.
Oui, vous pouvez utiliser jQuery pour faire fonctionner le contenu dans un iframe. Cependant, en raison de la politique d'origine même, cela ne peut être fait que si l'IFRAME et le document parent proviennent du même domaine. Voici un exemple de la façon de changer le HTML de la balise corporelle à l'intérieur d'un iframe:
$("#myIframe").contents().find("body").html("Hello, World!");
Vous pouvez utiliser Pure JavaScript pour détecter les iframes en comparant window.self
et window.top
, ce qui est similaire à la méthode jQuery. La méthode est la suivante:
if (window.self !== window.top) { // 网页在 iframe 内 } else { // 网页不在 iframe 内 }
La stratégie d'origine même est une fonctionnalité de sécurité implémentée dans un navigateur Web qui empêche les scripts d'interagir les uns avec les autres. Cette politique affecte l'IFRAME car elle empêche les scripts du document parent d'accéder ou de manipuler le contenu à l'intérieur de l'IFRAME (s'ils ne sont pas du même domaine).
Le contournement des politiques homologues n'est généralement pas recommandé pour des raisons de sécurité. Cependant, si vous contrôlez le document parent et le contenu IFRAME, vous pouvez utiliser la méthode d'attribut document.domain
ou postMessage
pour communiquer entre les deux.
postMessage
pour communiquer entre un iframe et un document parent? postMessage
vous permet d'envoyer des données entre Windows, même s'ils ne sont pas du même domaine. Voici un exemple de la façon de l'utiliser:
var isInIframe = (window.location != window.parent.location) ? true : false;
Oui, la méthode de comparaison window.self
et window.top
fonctionne pour tous les navigateurs modernes, y compris Chrome, Firefox, Safari et Edge.
Oui, vous pouvez utiliser la méthode attr
dans jQuery pour définir la propriété src
de l'Iframe pour charger la page Web dans l'IFRAME. Les exemples sont les suivants:
if (window.self !== window.top) { // 网页在 iframe 内 } else { // 网页不在 iframe 内 }
Oui, vous pouvez utiliser jQuery pour redimensionner l'iframe en fonction de son contenu. Cependant, en raison de la politique d'origine même, cela ne peut être fait que si l'IFRAME et le document parent proviennent du même domaine. Les exemples sont les suivants:
$("#myIframe").contents().find("body").html("Hello, World!");
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!