es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Flexdashboard: cambiar dinámicamente el título de la barra de navegación

¿Cómo puedo cambiar dinámicamente el título de la barra de navegación desde un documento R flexdashboard? Por ejemplo, intenté el siguiente código para mostrar dinámicamente cuándo se actualizó por última vez el flexdashboard.

Si es posible, estoy buscando una solución que no dependa de ninguna llamada externa.

title: "My title"
output: 
  flexdashboard::flex-dash<em>board:
    orientation: columns
    vertical</em>layout: fill
    navbar:

<h2>      - { title: <code>r paste0("Última actualización en: ", Sys.time())</code> }</h2>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para cambiar dinámicamente el título de la barra de navegación en un documento R flexdashboard, se puede utilizar la opción YAML header-includes para agregar una función de JavaScript al documento que modificará el título de la barra de navegación. Aquí hay un ejemplo:

    ---
    title: "Mi título"
    output: 
      flexdashboard::flex_dashboard:
        orientation: columns
        vertical_layout: fill
        header-includes:
          - '<script type="text/javascript">
              $(document).ready(function() {
                setInterval(function() {
                  var d = new Date().toLocaleString();
                  $(".navbar-brand").text("Última actualización: " + d);
                }, 1000);
              });
            </script>'
    ---
    

    En este ejemplo, la opción header-includes incluye una función de JavaScript que actualiza el título de la barra de navegación cada segundo con la fecha y hora actual. La función espera a que el documento esté listo ($(document).ready()), y luego utiliza setInterval() para ejecutar una función anónima cada segundo. La función obtiene la fecha y la hora actual con new Date().toLocaleString() y establece el texto del elemento .navbar-brand en la barra de navegación como “Última actualización: [fecha y hora]”.

    Esta solución no depende de ninguna llamada externa, pero requiere que JavaScript esté habilitado en el navegador web del usuario.

Comments are closed.