versiones seguridad internet importancia historia definicion printing internet-explorer-9

printing - seguridad - versiones de internet explorer



Bypass Printdialog en IE9 (2)

Estoy buscando una manera de eludir el printdialog en IE 9. Ahora que hay algunas formas para, por ejemplo, 7/8, pero no funcionan para mí en ie9

alguien puede por favor darme una pista?

saluda a markus


La combinación de teclas para el éxito aquí parece llamar a la función correcta en el evento onclick (por ejemplo, Print () en lugar de window.print ()), así como tener la configuración de seguridad adecuada configurada en IE9 (así como cualquier otra versión de ES DECIR).

Sin embargo, parece que no es necesario configurar la configuración de seguridad si se accede a la página con el control ActiveX print-dialog-bypass a través de una conexión HTTPS segura confiable (una con un certificado SSL confiable, en lugar de un certificado SSL autofirmado) .

No funciona en absoluto si se accede a la página a través de la ruta del archivo local. Tenga esto en cuenta si tiene la intención de dirigirse a usuarios cuyos navegadores no puede controlar; sin embargo, si tal situación es su caso, probablemente sea mejor usar otro enfoque completamente, usar tecnología como Java o requerir que los usuarios instalen sistemas operativos nativos. software, como los sitios web de impresión de cupones.

En cualquier caso, con la configuración de seguridad adecuada, IE9 debería permitirle omitir la ventana emergente de diálogo de impresión con el siguiente código:

<!DOCTYPE html> <html> <head> <title>Print Test</title> <script language="VBScript"> sub Print() OLECMDID_PRINT = 6 OLECMDEXECOPT_DONTPROMPTUSER = 2 OLECMDEXECOPT_PROMPTUSER = 1 call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1) End Sub document.write "<object id=''WB'' width=''0'' height=''0'' classid=''CLSID:8856F961-340A-11D0-A96B-00C04FD705A2''></object>" </script> </head> <body> <object id="WebBrowser1" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"> </object> <a href="#" onclick="Print()">Click Here to Print</a> </body> </html>

Este código exacto funcionó para mí en IE7, IE8 e IE9. Aún no he tenido la oportunidad de IE10, pero podría funcionar allí también. Si alguien con IE10 puede probar, informe de nuevo. Para obtener mejores resultados, recuerde ejecutarlo desde una fuente alojada, preferiblemente una fuente HTTPS de confianza, en lugar de hacerlo desde su máquina local.

Aquí están las configuraciones que tuve que configurar en IE9 para que funcione el código anterior. De nuevo, solo funcionó cuando la página se estaba publicando desde la web. Funcionó con menos regaños. Si traté de cargar el mismo archivo HTML directamente desde mi máquina local, NO funcionó, incluso con la misma configuración de seguridad configurada.

El resaltado de color rosa simplemente indica que tales configuraciones como configuradas son inseguras. Nota: también puede elegir ''preguntar'', que es más molesto, pero considerado algo seguro.


Realmente solo quería dejar un comentario, pero dado que IE se ha acelerado, debería incluirse aquí. Para tener soporte multiplataforma lo uso para javascript:

function PrintWindow() { var isIE11 = !!navigator.userAgent.match(/Trident.*rv[ :]*11/./); if (navigator.appName == "Microsoft Internet Explorer" || isIE11== true) { var PrintCommand = ''<OBJECT ID="PrintCommandObject" WIDTH=0 HEIGHT=0 ''; PrintCommand += ''CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>''; document.body.insertAdjacentHTML(''beforeEnd'', PrintCommand); PrintCommandObject.ExecWB(6, 2); PrintCommandObject.outerHTML = ""; window.close(); } else { window.print(); } }

Esto comprueba el IE 11 ahora. Es una nueva forma de definir el userAgent para Microsoft. Hay otros artículos sobre esto.