R boot app的twitter bootstrap popovers - html被解释为文本内容 - 为什么?

时间:2013-09-23 10:23:20

标签: javascript r twitter-bootstrap shiny

我想将twitter bootstrap框架中的popovers添加到一个闪亮的应用程序中。一切都很好,除了  html: true标记没有效果:

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"
                  });
          });   
      ')
    )
  )
))

enter image description here

与纯HTML / JS(没有闪亮部分)相同的代码才能正常工作:

<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>

enter image description here

有什么想法吗?我对bootstrap框架不太熟悉,但它可能与闪亮包含的版本有关吗?

1 个答案:

答案 0 :(得分:4)

tags环境执行HTML转义。为了防止在您的html字符串中出现这种情况,您需要使用HTML标记它。

yourStr <-   '$(document).ready(function(){
                      $("#btn-1")
                      .popover({html: true, 
                      title: "Button 1", 
                      content: "<h1>Press</h1> for some action", 
                      trigger: "hover"
                      });
                      });   
                      ' 

并在脚本中使用以下内容

tags$head(tags$script(HTML(yourStr)))