Nota: Hay muchas preguntas donde el cartel está escribiendo una nueva ubicación en el iframe desde el exterior y se le dice que use location.replace. Esto no es lo que está pasando en mi caso.
Editar: dejé mi descripción inicial a continuación, pero decidí describir el problema nuevamente en términos más simples. Si no tengo ningún control sobre el cambio de ubicación de un iframe, por lo que no puedo usar location.replace, ¿cómo evito que el iframe toque el historial del navegador?
Descripción original: mi aplicación web ejecuta una aplicación angular en un iframe. El comportamiento del usuario en esta aplicación angular a menudo hace que se escriban nuevas ubicaciones en el iframe, que aparentemente se activa en cascada y agrega nuevos elementos al historial del navegador. ¿Hay alguna manera de bloquear el iframe para que no afecte al navegador externo de esta manera, de modo que la aplicación angular interna no toque el historial en absoluto?
El atributo sandbox del iframe puede resolver este problema. Usando el programa de muestra del enrutador Angular para probar. Siempre que el sandbox solo establezca scripts de permiso, el iframe no afectará la navegación del navegador.
<iframe src="your url" sandbox="allow-scripts"></iframe>