resource - JavaScript para detectar si el marco padre es del mismo origen
habilitar cors (3)
Estoy buscando una forma de navegador cruzado para detectar si el marco principal es del mismo origen que mi marco, preferiblemente sin advertencias de impresión en la consola de error de JavaScript.
Lo siguiente parece funcionar, pero me gustaría evitar errores de impresión en la consola (al menos Safari y Chrome lo hacen cuando acceden a location.href en el marco principal. Firefox lanza una excepción que puede capturarse):
function parentIsSameOrigin() {
var result = true;
try {
result = window.parent.location.href !== undefined;
} catch (e) {
result = false;
}
return result;
}
Haría algo como:
var sameOrigin;
try
{
sameOrigin = window.parent.location.host == window.location.host;
}
catch (e)
{
sameOrigin = false;
}
return sameOrigin;
Prueba esto:
function parentIsSameOrigin()
{
var result = true;
if (window.parent)
{
result = Boolean
(
// more precise modifications needed here
window.this.location.href.indexOf(window.parent.location.href) == 0
);
}
return result;
}
Uso este método para decir si un iframe contiene contenido local,
pero puede pasarlo ventana. Más allá del iframe igual de bien
function islocal(win){
var H=location.href,
local= H.substring(0, H.indexOf(location.pathname));
try{
win=win.document;
return win && win.URL && win.URL.indexOf(local)== 0;
}
catch(er){
return false
}
}
// alerta de caso de prueba (islocal (window.top))