html - Capturar captura de pantalla de la etiqueta object o IFrame
Quiero capturar una captura de pantalla de una etiqueta de objeto (o un iframe) y usarla como miniatura.
HTML
<div class="resizable" (resized)="onResized($event)" id="modalParent">
<object id="modal" type="text/html" data="./../assets/modal/index.html"></object>
</div>
TS
var doc = document.getElementById('modal');
saveAsPng(doc); // Using save-html-as-image library
Intenté usar otras bibliotecas como;
- html2canvas
- domtoimage
- jspdf
- guardar-html-como-imagen
Pero todas estas bibliotecas devuelven una imagen en blanco.
Esto descarga una imagen en blanco con los siguientes errores;
Error inlining remote css file SecurityError: Failed to read the 'cssRules'
property from 'CSSStyleSheet': Cannot access rules
Error loading remote stylesheet SecurityError: Failed to read the 'cssRules'
property from 'CSSStyleSheet': Cannot access rules
Error while reading CSS rules from https://fonts.googleapis.com/css?
family=Open+Sans:300,400,600,700 SecurityError: Failed to read the 'cssRules' property from
'CSSStyleSheet': Cannot access rules
Error while reading CSS rules from https://fonts.googleapis.com/css?
family=Roboto:300,400,500&display=swap SecurityError: Failed to read the 'cssRules' property from
'CSSStyleSheet': Cannot access rules
Error while reading CSS rules from https://fonts.googleapis.com/icon?
family=Material+Icons SecurityError: Failed to read the 'cssRules' property from 'CSSStyleSheet':
Cannot access rules
Estructura
El HTML mostrado arriba es el nivel superior. Se refiere a ../modal/index.html - este archivo index tiene otro iFrame que muestra contenidos que están alojados en AWS S3.
El HTML de nivel superior mostrado arriba está destinado a actuar como una vista previa para el usuario en el front-end.
Espero que esto tenga sentido.
¿Alguien puede explicármelo?
- ¿Qué significan exactamente estos errores? ¿Necesito configurar CORS en el bucket de S3 para el intercambio de recursos de origen cruzado?
- ¿Hay otra manera de convertir HTML en una imagen que no conozca?