Sugerencia para imprimir contenido en Chrome y Edge
Hola, estamos utilizando el siguiente código para imprimir en el navegador IE:
function ieExecWB(intOLEcmd, intOLEparam) {
try {
// Crear objeto OLE
var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
// Colocar objeto en la página
document.body.insertAdjacentHTML(''beforeEnd'', WebBrowser);
// Manejar los errores en tiempo de ejecución si la impresora no está conectada
oldHandler = window.onerror;
// Si intOLEparam no está definido, establecerlo
if ((!intOLEparam) || (intOLEparam < 2) || (intOLEparam > 2))
intOLEparam = 2;
// Ejecutar el objeto
WebBrowser1.ExecWB(intOLEcmd, intOLEparam);
// Destruir el objeto
WebBrowser1.outerHTML = '""';
window.onerror = oldHandler;
} catch (vException) {
return;
}
}
}// fin de ieExecWB()
window.parent.frames.item('frameLeft').document.close();
window.parent.frames.item('frameLeft').focus();
document.frmBD0103.hdnPrnCookie.value = '""';
ieExecWB(6, PRINT_WITHOUT_PROMPT);
window.parent.frames.item('frameLeft').document.open();
window.parent.frames.item('frameLeft').document.write('"Marco Izquierdo....."');
window.parent.frames.item('frameLeft').document.close();
Ahora estamos cambiando el navegador de IE a Edge y Chrome.
¿Podrías sugerir la mejor manera de utilizar la funcionalidad anterior en los navegadores Chrome y Edge por favor?
davy.ai
Como Edge y Chrome no admiten el uso de
ActiveXObject
utilizado en el código anterior para imprimir, se necesita un enfoque alternativo. Una solución podría ser utilizar el métodowindow.print()
, que está integrado en la mayoría de los navegadores modernos, incluidos Edge y Chrome. Este método abrirá el cuadro de diálogo de impresión donde el usuario puede seleccionar su impresora y configuraciones deseada antes de imprimir el contenido.Aquí tienes un ejemplo de cómo se podría modificar el código anterior para usar el método
window.print()
:Esto debería funcionar tanto en Edge como en Chrome sin necesidad de complementos o bibliotecas adicionales. Sin embargo, ten en cuenta que el método
window.print()
es una acción iniciada por el usuario y no se puede activar automáticamente, el usuario debe hacer clic en un botón o enlace para abrir el cuadro de diálogo de impresión.