我在ui.R中有以下内容
shinyUI(fluidPage(
uiOutput("test"),
mainPanel(
tabsetPanel(
tabPanel("Test",conditionalPanel("input.show==1",includeHTML("index.html")))
)
)
))
以及server.R中的以下内容 shinyServer(函数(输入,输出){
output$test <- renderUI({
tmp <- readLines("www/termite.css")
ifelse(grepl("#ccc",tmp[2]),tmp[2] <- gsub("#ccc","#FFF",tmp[2]),tmp[2] <- gsub("#FFF","#ccc",tmp[2]))
write(tmp,"www/termite.css",sep = "\n")
tmp <- readLines("index.html")
tmp[8] <- gsub("This is a page","This is my page!",tmp[8])
write(tmp,"index.html",sep = "\n")
checkboxInput("show","change bg color",value=0)
})
})
在index.html中
<!DOCTYPE html>
<html>
<head>
<title>Hi there</title>
<link href="termite.css" rel="stylesheet" type="text/css"/>
</head>
<body>
This is a page
a simple page
</body>
</html>
在www / termite.css
中body {
background-color: #FFF;
cursor: default;
}
现在服务器程序将在程序执行后更新termite.css文件。并且仅当选中复选框时#index; index.html&#34;应该加载到ui。但现在ui加载现有文件,它不会再次更新。我试过回复&#39; includehtml&#39;来自服务器的功能,但它没有加载所有外部文件。它只在从ui调用时才加载外部文件。这里最初的颜色代码是#FFF,所以当我选择复选框时,它应该加载背景颜色为#ccc的页面,文本应该改为&#34;这是我的页面!&#34; 提前谢谢。