Erreur: Autorisation refusée pour accéder à la propriété "document"
J'ai un Document HTML qui contient un iframe
. Chaque fois que j'essaie d'accéder ou de modifier cette iframe
avec JS-je obtenir Error: Permission denied to access property "document"
.
Je suis en utilisant frame.contentWindow.document.body.innerHTML
ou frame.contentWindow.document.body.onload
ou similaires tels attributs pour accéder ou modifier les iframe
. (Dans le code de la iframe
est appelé frame
.)
Pour l'application web, je suis en développement, l'accès à ces attributs sont nécessaires et je ne peux pas faire sans ces (ou similaire alternatives).
source d'informationauteur sbrm1
Vous devez vous connecter pour publier un commentaire.
Accès et puis de modifier les pages web dans
iframe
s de d'autres sites web est connu comme Le Cross-site scripting ou XSS et c'est une technique utilisée par les pirates informatiques pour les proies sur des victimes sans méfiance.Une politique de par le nom de "same-Origin Policy" est mis en œuvre par les éditeurs de navigateurs afin de prévenir de tels comportements et l'exécution arbitraire de code JS.
Cette erreur peut être évitée par l'hébergement du parent document et le document dans le
iframe
dans le même domaine et sous-domaine, et de s'assurer que les documents sont chargés en utilisant le même protocole.Exemples de l'incompatibilité des Pages:
http://www.example.org
&http://www.example2.com
http://abc.example.org
&http://xyz.example.com
http://www.example.org
&https://www.example.com
Cross-Origin Resource Sharing est une solution à ce problème.
Par Exemple:
Si
http://www.example.com
voudrais partagerhttp://www.example.com/hello
avechttp://www.example.org
, un en-tête peuvent être envoyés avec le document qui se présente comme suit:Pour l'envoyer avec HTML, il suffit de le mettre dans un
<META HTTP-EQUIV="...">
balise, comme ceci:Vous pouvez utiliser postMessage
Fenêtre 1 - recevoir
Fenêtre - 2 La Transmission De
Vous devez créer une autre paire de communiquer entre eux.