I want to add popovers from the twitter bootstrap framework to a shiny app. Everything works fine, except
that the html: true tag does not have an effect:
shinyUI(pageWithSidebar(
headerPanel("Header"),
sidebarPanel(
actionButton("btn-1", "Go!")
),
mainPanel(
tags$head(
tags$script('
$(document).ready(function(){
$("#btn-1")
.popover({html: true,
title: "Button 1",
content: "<h1>Press</h1> for some action",
trigger: "hover"
});
});
')
)
)
))

The same code as pure HTML / JS (without the shiny part) just works fine:
<script>
$(document).ready(function(){
$("#btn-1")
.popover({html: true,
title: "Button 1",
content: "<h1>Press</h1> for some action",
trigger: "hover",
delay: {show: 100, hide: 100}
});
});
</script>
<button id="btn-1" type="submit" class="btn">Submit</button>

Any ideas? I am not too familiar with the bootstrap framework, but may it have to do with the version that is included by shiny?
The tags enviroment carries out HTML escaping. In order to prevent this on your html string you need to mark it with HTML.
yourStr <- '$(document).ready(function(){
$("#btn-1")
.popover({html: true,
title: "Button 1",
content: "<h1>Press</h1> for some action",
trigger: "hover"
});
});
'
and use the following in your script
tags$head(tags$script(HTML(yourStr)))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With