roHtmlWidgetEvent
4 min
si un romessageport está adjunto a un rohtmlwidget , recibirá objetos rohtmlwidgetevent cuando ocurra algo en la instancia principal de rohtmlwidget ifuserdata setuserdata(user data as object) establece los datos del usuario que se devolverán cuando se generen eventos getuserdata() as object devuelve los datos del usuario que se establecieron previamente mediante setuserdata() devolverá invalid si no se ha establecido ningún dato ifhtmlwidgetevent getdata() as roassociativearray devuelve los datos del evento como un arreglo asociativo con los siguientes pares clave/valor razón \<font color="#6b21a8">string\</font> la causa del evento, que puede ser una de las siguientes "load started" el widget html ha comenzado a cargar una página "load finished" el widget html completó la carga de una página "load error" el widget html no pudo cargar una página utilice la clave uri para identificar el recurso que falló y la clave mensaje para recuperar texto explicativo "solicitud de descarga" la instancia del widget html ha recibido una solicitud de descarga la instancia de chromium no procesa solicitudes de descarga para tipos mime que no reconoce (p ej , pdf); en su lugar, pasa este evento, junto con los parámetros tipo mime y url al autorun de brightscript para su procesamiento "new window request" la instancia del widget html ha recibido una solicitud para abrir un uri en una nueva ventana esta solicitud normalmente provendrá de anclas html con "target= blank" / "target= top" o del método javascript window\ open() el uri solicitado se especifica en el parámetro uri javascript dialog \<font color="#6b21a8">string\</font> si la instancia del widget html ha recibido una alerta de javascript, una confirmación, etc , brightscript responderá llamando a los métodos de rohtmlwidget acceptdialog(responseasstring) y rejectdialog() consulte rohtmlwidget#rohtmlwidget acceptdialog(responseasstring) docid\ g tjkqqhlcft4fw5 z6t0 si no se proporciona una respuesta en un segundo, rohtmlwidget rechaza automáticamente el intento de diálogo y, si estas apis se llaman cuando no hay una solicitud de diálogo en rohtmlwidget, no tienen efecto este parámetro se agregó en bos 8 5 16 mensaje \<font color="#6b21a8">string\</font> el mensaje que mostrará el diálogo javascript (aplicable solo para reason "javascript dialog" ), o texto explicativo relacionado con el error de carga (aplicable solo para reason "load error") esta propiedad existe para varios tipos de eventos, pero tiene significados diferentes para distintos tipos de eventos texto predeterminado \<font color="#6b21a8">string\</font> si un cuadro de diálogo prompt de javascript solicita al usuario que introduzca texto, este texto predeterminado se mostrará en el campo de entrada este campo estará vacío para otros tipos de diálogos (aplicable solo para reason "javascript dialog" ) este parámetro se agregó en bos 8 5 16 tipo \<font color="#6b21a8">int\</font> el tipo de diálogo para el evento “javascript dialog” 0 para alert, 1 para confirm, 2 para prompt, 3 para un "onbeforeunload event" (aplicable solo para reason "javascript dialog" ) este parámetro se agregó en bos 8 5 16 security origin \<font color="#6b21a8">string\</font> el origen de seguridad de la solicitud (aplicable solo para reason "javascript dialog" ) este parámetro se agregó en bos 8 5 16 uri \<font color="#6b21a8">string\</font> el uri del recurso con errores o de la solicitud de nueva ventana (aplicable para razón "error de carga" o reason "new window request" ) tipo mime \<font color="#6b21a8">string\</font> el tipo mime de la solicitud de descarga (aplicable solo para reason "solicitud de descarga" ) url \<font color="#6b21a8">string\</font> el url de la solicitud de descarga (aplicable solo para reason "solicitud de descarga" ) ejemplo el siguiente bucle de eventos espera un evento de widget html si el evento indica que se ha recibido una solicitud de descarga de pdf, el script pasa los datos relevantes a una función createpdfrenderer() que no se define aquí while true 	ev = wait(0, gaa mp) 	print "=== bs received event ";type(ev) 	if type(ev) = "rohtmlwidgetevent" then 	 eventdata = ev getdata() 	 if type(eventdata) = "roassociativearray" and type(eventdata reason) = "rostring" then 	 if eventdata reason = "load error" then 	 print "=== bs html load error "; eventdata message 	 else if eventdata reason = "load finished" then 	 print "=== bs received load finished" 	 receivedloadfinished = true 	 else if eventdata reason = "message" then 	 ' to use this msgport postbsmessage({text "my message"}); 	 else if eventdata reason = "load started" then 	 print "=== bs received load started" 	 else if eventdata reason = "download request" then 	 print "=== bs received a download request" 	 if eventdata mime type = "application/pdf" then 	 createpdfrenderer("file ///index html?file=" + eventdata url) 	 endif 	 else 	 print "======= unhandled html event =========" 	 print eventdata reason 	 endif 	 else 	 print "=== bs unknown eventdata "; type(eventdata) 	 endif 	endif endwhile