【问题标题】:Call javascript function on page load in R shiny在 R 闪亮的页面加载时调用 javascript 函数
【发布时间】:2017-07-15 00:13:29
【问题描述】:

我添加了对 css 和 javascript 文件的引用,如下所示:

  tags$link(rel="stylesheet", type="text/css", href="rtp.css"),
  tags$script(type="text/javascript", src = "rtp.js"),

如何调用“rtp.js”中定义的javascript函数? 我试过了

tags$script(type="text/javascript", src = "myfunction()")

(这不起作用)。

【问题讨论】:

    标签: javascript r shiny


    【解决方案1】:

    您可以使用htmlwidgets 包中的JS() 函数(我认为它默认带有shiny

    添加在应用程序启动时执行的自定义函数:

    tags$script(JS('alert("initialized!")'))
    
    tags$script(JS('myfunction()'))
    

    如果myfunction() 驻留在外部文件中,请先将其导入并执行:

    tags$script(type="text/javascript", src = "rtp.js"),
    tags$script(JS('myfunction())'))
    

    【讨论】:

    • 感谢@GGamba,对不起,我是一个完整的 JS 新手。我将 JS('myfunction()') 添加到我的代码中,但闪亮打印表达式而不是调用函数。我做错了什么?
    • 你必须添加一些上下文,你想用 js function() 来完成什么?
    • 谢谢,现在更清楚了。尽管即使使用 tags$script(JS('myfunction()')) 仍然无法正常工作。我不确定您的代码中的第 2-5 行是做什么的。看来您正在定义一个函数。我正在尝试使用在 rtp.js 中定义的 myfunction()。它在移动设备上添加了一个小部件以添加到home screen。 @GGamba
    【解决方案2】:

    src="foo" 参数表示从名为foo 的文件中获取脚本的源代码。如果您有内联代码,则向tags$script 提供一个 unnamed 参数:

    tags$script(type="text/javascript", "myfunction()")
    
    # <script type="text/javascript">myfunction()</script>
    

    【讨论】:

      猜你喜欢
      • 2020-01-25
      • 1970-01-01
      • 2020-12-15
      • 1970-01-01
      • 1970-01-01
      • 2013-03-28
      • 2011-04-20
      • 2012-08-30
      • 1970-01-01
      相关资源
      最近更新 更多