Para mi aplicación, necesito conservar el estado de almacenamiento local entre 2 subdominios. Para resumir, encontré que la única forma de hacer esto es usar un iframe. Cuando cargo mi iframe en mi aplicación, lo escondo usando css pero el contenido aún se carga. ¿Hay alguna forma de cargar el iframe del subdominio con el mínimo contenido posible para reducir el tamaño de la aplicación y el retraso en la pantalla? Solo necesito el iframe para configurar el almacenamiento local, no necesito que la aplicación completa se cargue dos veces. Es decir, ¿hay alguna forma de deshabilitar css y no realizar solicitudes de red?
Dos posibilidades que se me ocurren ahora mismo.
Una posibilidad sería obtener el DOM como texto con JS fetch(). Luego, conviértalo en un DOM y cargue solo el contenido de texto.
Y si se trata solo de subdominios, no deberían ocurrir problemas de CORS.
fetch('https://stackoverflow.com/questions/71880857/block-content-on-hidden-iframe') .then(response => response.text()) .then(htmlString => { //console.log('text',typeof htmlString) let div = document.createElement('div'); div.innerHTML = htmlString.trim(); console.log("content",div.textContent) });La segunda posibilidad sería verificar la solicitud en los subdominios para ver si proviene de un iframe. Si también es el propietario de los subdominios y resulta ser PHP en el servidor, puede, por ejemplo, verificar la solicitud con PHP de la siguiente manera:
if( isset($_SERVER['HTTP_SEC_FETCH_DEST']) && $_SERVER['HTTP_SEC_FETCH_DEST'] == 'iframe' ) { $flag = true; } Si es true , puede usar una bandera para excluir los scripts y estilos con una sola condición IF.