La suppression de “permission denied” les erreurs Javascript
J'ai une fonction JS que les sondages pour l'url courante dans une iframe, le but étant de déterminer si oui ou non l'iframe pointant vers le même site que le document principal. En tant que tel, le code est fondamentalement:
function urlCheck()
{
var location = document.getElementById('frameid').contentWindow.location.href;
if (location)
{
//iframe src is currently local
}
else
{
//iframe src is currently not local
}
}
Fonctionnellement, ce code fonctionne parfaitement. Cependant, dans la console d'erreur, à chaque fois que cette fonction est appelée et l'iframe src n'est pas local, j'obtiens une erreur:
Autorisation refusée pour l' [site1] pour obtenir l'Emplacement des biens.href partir de [site 2]
Comment puis-je corriger mon code pour éviter ces erreurs?
Grâce,
Mala
OriginalL'auteur Mala | 2009-08-18
Vous devez vous connecter pour publier un commentaire.
D'emballage de votre code dans un try-catch bloc doit être en mesure d'intercepter et de traiter avec ces erreurs.
OriginalL'auteur DanSingerman
En fait, le message d'erreur est l'info que vous voulez: dès Que l'URL de l'iframe points à un autre domaine, vous obtenez des erreurs de permission. C'est une mesure de sécurité pour éviter Les attaques XSS.
[EDIT] Cela signifie que vous pouvez remplacer le code ci-dessus avec:
Aaron: merci à vous de faire en sorte que je suis prudent. En fait, je n'ai pas vraiment besoin de la message d'erreur. Fondamentalement, mon code maintenant, dit "set var location = false; essayez de définir l'emplacement de l'url de l'iframe; si (emplacement) {faire des trucs}". En tant que tel, je suis assez sûr que je suis en sécurité. DanSingerman est correct - je déteste quand les sites de boguer mon erreur de la console avec des erreurs (rend le débogage mon JS tout en surfant sur d'autres sites, une douleur à la R-se =P) donc j'essaie d'éviter de le faire pour d'autres personnes.
Bien sûr que non. Voir mes modifications.
OriginalL'auteur Aaron Digulla