Tengo una aplicación java ee donde estoy usando JSF con Primefaces.
Ahora necesito abrir un cuadro de diálogo donde se muestra el documento PDF. Está deshabilitado para imprimir o descargar el documento. Así que he escondido la barra.
<p:dialog widgetVar="dlgpdf" height="800" width="950" header="pdf" maximizable="false" minimizable="false" resizable="false" dynamic="true" showEffect="clip"> <p:media value="#{DIPCSS.downloadFiles()}" player="pdf" width="900px" height="600px" id="pdfvisualizer"> <f:param name="idee" value="#{DIViewBean.id}" /> <f:param name="#toolbar" value="0" /> </p:media> </p:dialog>Todo está bien aquí.
Pero, ¿cómo sé que el usuario se ha desplazado hasta el final del documento? Entonces quiero habilitar la pulsación del botón.
He probado mucho código JS, pero ninguno me funciona. El problema es probablemente que está en un diálogo y hay una nueva estructura html. ¿Alguna recomendación?
Intento esto ahora:
<script type="text/javascript"> const myDiv = document.getElementById('pdfvisualizer') myDiv.addEventListener('scroll', () => { if (myDiv.offsetHeight + myDiv.scrollTop >= myDiv.scrollHeight) { console.log('scrolled to bottom')} }) </script>Y el error es: TypeError no capturado: no se puede leer la propiedad 'addEventListener' de null