Pregunta

Tengo una función JS que las encuestas para la URL actual en un iframe, siendo el propósito de determinar si el marco flotante está apuntando al mismo sitio que el documento principal. Como tal, el código es básicamente:

function urlCheck()
{
  var location = document.getElementById('frameid').contentWindow.location.href;
  if (location)
  {
    // iframe src is currently local
  }
  else
  {
    // iframe src is currently not local
  }
}

Funcionalmente, este código funciona perfectamente. Sin embargo, en la consola de errores, cada vez que esta función se llama y el iframe src no es local consigo un error:

Permission denied for [site1] to get property Location.href from [site 2]

¿Cómo puedo arreglar mi código para evitar estos errores?

Gracias, Mala

¿Fue útil?

Solución

Embalaje su código en un try-catch bloque debe ser capaz de atrapar y hacer frente a estos errores.

Otros consejos

En realidad, el mensaje de error es la información que desee: Tan pronto como la URL de los puntos iframe a un dominio diferente, se obtiene errores de permisos. Esta es una medida de seguridad para evitar ataques XSS .

[EDIT] Esto significa que puede reemplazar el código anterior con:

function urlCheck()
{
  try
  {
    document.getElementById('frameid').contentWindow.location.href;

    // iframe src is currently local
  }
  catch (e)
  {
    // iframe src is currently not local
  }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top