gpt4 book ai didi

html - 如何在 Shiny App 中使用 URL 呈现 HTML 文件而不破坏其他交互式绘图和表格?

转载 作者:行者123 更新时间:2023-12-04 13:51:38 26 4
gpt4 key购买 nike

我制作了一个 Shiny 应用程序,它连接到远程数据库 (PostgreSQL) 以提取表格,以便在我的应用程序中显示并使用表格中的值生成用户交互图(箱线图、散点图、直方图)。
该应用程序的另一部分是在应用程序中呈现托管在网站(例如 GitHub)上的 HTML 文件。
这是我使用的代码的一部分:

    output$genotyping <- renderUI({
if (creds_reactive()$user == "Admin") {

fluidPage(useShinyjs(),
titlePanel("Github HTML file"),
mainPanel(

h3("Click this button to display/hide the html file"),
br(),
br(),
actionButton("genotype", "Click me!"),
hidden(
div(id = 'text_div',
htmlOutput("includeHTML")
) )
)

) }
else {
mainPanel(
fluidRow(
align = "center",
h3("Sorry! You don't have the permissions required to view this content.")
)
)

}
})

request <- GET("link to html file")
github.html <-content(request, as ="text")

observeEvent(input$genotype, {

toggle('text_div')
output$includeHTML <- renderText({github.html})

})
我正在使用来自 here 的代码.
但是,它已经过时了,而且 Dropbox 已经删除了 HTML 渲染支持/禁用了一些 Java 功能,因此无法加载 HTML 文件,因此在我的代码中使用 Dropbox 链接会在我的应用程序中生成一个空白页面。因此,我使用 GitHub 来存储我的文件。文件本身比较大,所以 GitHub 本身无法渲染它。我使用了由 github 生成的原始代码的链接以及 raw.githack 来呈现带有 URL 的文件。在屏幕快速刷新后,这两个选项都能够在我的应用程序中呈现 HTML 文件。问题是,所有其他交互式表格和绘图在加载到 HTML 文件后都无法使用。任何选项卡(来自 tabsetPanel)的字体都变为红色,并且无法加载之前创建的任何表格和绘图。
我会将报告存储在本地驱动器/文件夹中,但这不是很实用,因为这只是一份报告(还会有更多,我用来运行 Shiny 服务器的 EC2 实例会变得太满)。
编辑: 我应该注意到,即使将它放在本地文件夹中并使用 includeHTML 也有与使用 URL 相同的问题,所以也许这只是在 Shiny 应用程序中呈现 HTML 的问题?
我也不太确定 http 请求如何与 GET 函数配合使用。它是否创建了一个新的连接来取代原来的连接?为什么通过 URL 在 HTML 文件中渲染后不再加载我的绘图/表格?我应该断开 GET 连接吗?
我还使用了一个名为 Shinymanager 的包来创建一个带有凭据和密码的安全应用程序登录,因此我在那里使用了“if”语句来生成自定义 UI。这里也使用了 ShinyJS 来创建隐藏效果。按下按钮将显示/隐藏报告。
如果还有什么我可以提供的,请告诉我。谢谢。

最佳答案

您是否尝试过使用 iframe而不是 includeHTML ?
像这样的事情应该这样做:

library(shiny)

addResourcePath("html", file.path(R.home(), "doc", "html"))

ui <- fluidPage(
tags$iframe(src="html/about.html", height="200px", width="100%", frameborder="0", scrolling="yes")
)

server <- function(input, output, session) {}

shinyApp(ui, server)

关于html - 如何在 Shiny App 中使用 URL 呈现 HTML 文件而不破坏其他交互式绘图和表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68897944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com