¿Hay alguna manera de, como el título dice "Mostrar página de manera diferente (css) si dentro de iframe". Estoy buscando un método jQuery/JavaScript para utilizar potencialmente una hoja de estilos css diferente si el sitio está dentro de un iframe. ¿Algunas ideas?Mostrar la página de manera diferente (css) si dentro de iframe
Respuesta
Puede inject una hoja de estilos diferente si la ventana no es top window.
if (window.top!=window.self)
{
// In a Frame or IFrame
}
else
{
// Not in a frame
}
if(self != top) {
headTag = document.getElementsByTagName("head")[0].innerHTML;
var frameCSS = headTag + '<style type="text/css">**insert CSS here**</style>';
document.getElementsByTagName('head')[0].innerHTML = frameCSS;
}
Si la página es la única página que se muestra, la parte superior, padre, auto y la ventana serán iguales. Si la página se mantiene dentro de un conjunto de marcos, self y top no serán iguales. Si la página es la que contiene el conjunto de marcos y no se está reteniendo dentro de un conjunto de marcos, self y top serán iguales.
En lugar de insertar una nueva hoja de estilo, le sugiero que agregue una clase de CSS a body
.
ejemplo jQuery:
$(function() {
if (window.self != window.top) {
$(document.body).addClass("in-iframe");
}
});
Ahora puede estilo de cosas de manera diferente, como
.in-iframe p {
background: purple;
}
^esto. Ir con un archivo css completamente nuevo es probablemente exagerado para la mayoría de los usos prácticos. –
Aquí es un enfoque rápido y amigable diseñador usando JS vainilla. Solo una línea de JS y la apariencia se pueden controlar desde CSS/SASS/LESS.
Coloque este dentro del elemento head
antes de cualquier CSS o JS se carga:
// Sets the class of the HTML element using vanilla JavaScript
document.documentElement.className += (window.self == window.top ? " top" : " framed");
Luego, en el CSS/SASS/menos se puede ocultar, mostrar, y ajustar en base a los cuales se aplicó clase.
/* Hide site navigation when in an iframe */
html.framed .site-nav,
html.framed .site-footer {
display: none;
}
PSA: Considere aprovechando la X-Frame-Options para mantener su duro trabajo de ser secuestrado.
Esto es simplemente ordenado, limpio y auto explicativo, ¡me gusta! –
- 1. Detectar si una página está dentro de un iframe - servidor
- 2. Mostrar página diferente si visita por primera vez
- 3. Mostrar imagen en Iframe
- 4. iframe para mostrar solo una parte determinada de la página
- 5. Cómo cerrar iframe desde dentro de iframe?
- 6. Ajuste iFrame CSS para mostrar: ninguno durante la carga
- 7. iframe seguro en página no segura en un dominio diferente
- 8. Extracción de la página iframe
- 9. Jquery dentro de Iframe
- 10. iframe click link se abre en la página principal en lugar de en la página iframe
- 11. Compartiendo la variable javascript global de una página con un iframe dentro de esa página
- 12. Iframe SSL en y página SSL desde un dominio diferente
- 13. ¿Puedo aplicar CSS a los elementos dentro de un iframe?
- 14. Comprobar si la página está en Iframe para Google Chrome
- 15. <iframe> - ¿Cómo mostrar toda la altura de la página hace referencia?
- 16. mostrar una página dentro de una ventana en XAML
- 17. ¿Cómo desplazo la página principal a la parte superior cuando la página secundaria se hace clic dentro de iframe?
- 18. OAuth no funciona dentro de un iframe
- 19. Compruebe si la ventana primaria es iframe o no
- 20. ¿Hay alguna manera de mostrar contenido HTML dentro de Flash?
- 21. Limitaciones de página web cuando se envuelve dentro de un IFrame?
- 22. Javascript: obtenga el id. De iframe dentro de la página cargada
- 23. Deshabilitar cookies dentro de un marco/Iframe
- 24. El uso de CSS para afectar div style dentro de iframe
- 25. Javascript/CSS: establecer (Firefox) nivel de zoom de iframe?
- 26. Detección del lado del servidor de que se muestra una página dentro de un IFrame
- 27. cómo cerrar colorbox dentro de iframe?
- 28. ¿Cómo cambiar la altura del iframe en función del contenido dinámico dentro del iframe?
- 29. ¿Cómo identificar si una página web se está cargando dentro de un iframe o directamente en la ventana del navegador?
- 30. Obtener elemento dentro de un iFrame
¡MUCHAS GRACIAS! – ThomasReggi
¿Hay un método puramente CSS para lograr esto o está comprobando 'window.top' a través de JavaScript requerido? – iX3
@ iX3 - no hay. CSS no tiene conocimiento de los marcos. – Oded