Javascript cambia de modo de funcionamiento a estándar

¿Hay alguna manera de cambiar una página en modo de funcionamiento a modo estándar usando Javascript?

Por ejemplo, asumiendo que tengo la siguiente página con html en ella. He intentado lo siguiente.

 

y el siguiente contenido en js.js

 document.open(); document.write(''); document.close(); 

Desde la visualización de la salida anterior, básicamente estoy tratando de convertir una página en modo quirks a modo estándar, pero no funciona. (la configuración del contenido de una página como la anterior en un iframe funciona bien)

iframe trabaja

Funciona: se iframe.contentWindow.document.write('..'); document.createElement('iframe') al documento y se llama iframe.contentWindow.document.write('..'); en eso. Desafortunadamente, la misma técnica no lo hace si lo llamo en la página actual.

¿Alguien tiene una solución de trabajo cambiando una página en modo de funcionamiento a modo estándar?

EDITAR: Crear y agregar un iframe y simplemente establecer su altura y anchura al 100%, funciona pero no es el objective aquí;)

El navegador generalmente busca un tipo de documento en el momento de la carga para determinar si se debe usar el “modo estándar” o no, y carga / representa la página según esa decisión. Incluso si logras insertar una statement de tipo de documento a través de un script, no estaría allí a tiempo para importar.

La razón por la que funciona en un iframe es que el contenido es un documento nuevo, que se está “cargando” a medida que lo escribe. Dado que el doctype está allí, ese contenido se representa en modo estándar.

Como se mencionó en otra pregunta sobre este mismo tema , es posible que pueda reescribir todo el documento. Básicamente, (si la página aún está en el modo de peculiaridades), obtenga document.documentElement.innerHTML , y luego escriba un nuevo documento con el tipo de documento adecuado, y agregue el HTML del documento original. Pero causará un montón de problemas con las secuencias de comandos y tal, y debe evitarse. La solución ideal es corregir el HTML para incluir un doctype, en lugar de manipularlo con un script.

  

o cualquier variante no funcionará, porque una etiqueta hace que el analizador HTML cree un elemento HTML y un elemento HEAD si no existe. Cuando existe un elemento HTML (incluso uno implícito), se ignora un DOCTYPE en la secuencia del token.

Cerrar y volver a abrir el documento solo impedirá el análisis de cualquiera de los siguientes contenidos HTML.

La única manera de usar document.write para generar un DOCTYPE es crear un nuevo documento en blanco que pueda escribir.

Solo resuelve este lado del servidor.

Puedes intentar escribir una metaetiqueta compatible con X-UA: