Existe-t-il un bon moyen de détecter lorsqu'une page ne s'affichera pas dans un cadre à cause de l'en-tête X-Frame-Options ? Je sais que je peux demander la page côté serveur et rechercher l'en-tête, mais j'étais curieux de savoir si le navigateur dispose d'un mécanisme pour détecter cette erreur.
Réponses
Trop de publicités?
Iftach
Points
41
OK, celui-ci est ancien mais toujours d'actualité.
Fait: Lorsqu'une iframe charge une URL qui est bloquée par un X-Frame-Options, le temps de chargement est très court.
Pirater: Donc, si le chargement se produit immédiatement, je sais qu'il s'agit probablement d' un problème X-Frame-Options.
Clause de non-responsabilité: C'est probablement l'un des codes les plus 'hacki' que j'ai écrit, alors ne vous attendez pas à grand-chose :
var timepast=false;
var iframe = document.createElement("iframe");
iframe.style.cssText = "position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;";
iframe.src = "http://pix.do"; // This will work
//iframe.src = "http://google.com"; // This won't work
iframe.id = "theFrame";
// If more then 500ms past that means a page is loading inside the iFrame
setTimeout(function() {
timepast = true;
},500);
if (iframe.attachEvent){
iframe.attachEvent("onload", function(){
if(timepast) {
console.log("It's PROBABLY OK");
}
else {
console.log("It's PROBABLY NOT OK");
}
});
}
else {
iframe.onload = function(){
if(timepast) {
console.log("It's PROBABLY OK");
}
else {
console.log("It's PROBABLY NOT OK");
}
};
}
document.body.appendChild(iframe);
Newtang
Points
1659
apenwarr
Points
4956