【问题标题】:disable right click in shiny app在闪亮的应用程序中禁用右键单击
【发布时间】:2015-10-18 01:03:46
【问题描述】:

我想禁用对闪亮应用的右键单击。有些信息我不想在别处复制和粘贴。我了解,仍然可以创建页面快照,但没关系。有没有办法使用 javascript 在闪亮的应用程序中禁用此功能?我尝试了以下操作,但出现错误。

tags$head(HTML("<script type='text/javascript'>document.addEventListener("contextmenu", function(e){
e.preventDefault();
}, false)</script>")),

【问题讨论】:

    标签: shiny-server shiny


    【解决方案1】:

    这是一个 JavaScript,而不是一个闪亮的问题。 Here's the first SO response to this question that I found on Google。基本上,围绕它的用户有很多方法,不建议这样做,因为它大多只是让用户感到厌烦,但你可以这样做。

    【讨论】:

    • 我明白这一点。我无法实现 document.addEventListener("contextmenu", function(e){ e.preventDefault(); }, false);在闪亮的应用程序中
    【解决方案2】:

    您可以设置一个带有其 id 的代码块的右键单击禁用,并使用 shinyjs 运行它

    library(shiny)
    library(shinyjs)
    
    jscode <- "
    shinyjs.init = function() {
        document.getElementById('plot').addEventListener('contextmenu', event => event.preventDefault());
        document.getElementById('myarea').addEventListener('contextmenu', event => event.preventDefault());
    }"
    
    ui <- fluidPage(
      useShinyjs(),
      extendShinyjs(text = jscode, functions = c()),
      tabsetPanel(
        tabPanel("Plot", plotOutput("plot")),
        tabPanel("Summary", verbatimTextOutput("summary")),
        tabPanel("Table", tableOutput("table"),div(id="myarea", h1("You can't right click me")))
      )
    )
    
    server <- function(input, output, session) {
      
      
        output$plot <- renderPlot({ 
          plot(cars)
        })
    }
    
    shinyApp(ui, server)
    

    【讨论】:

      猜你喜欢
      • 2018-08-23
      • 1970-01-01
      • 2017-07-10
      • 2021-03-26
      • 2016-05-04
      • 1970-01-01
      • 1970-01-01
      • 2013-07-08
      • 2020-07-21
      相关资源
      最近更新 更多