Javascript 为什么console.log不是R的函数?
我将Javascript 为什么console.log不是R的函数?,javascript,r,d3.js,shiny,Javascript,R,D3.js,Shiny,我将JavaScript包含在shinysui.R中,如下所示: tags$body(tags$script(src="someJs.js")) 在我的someJs.js中,我有一个函数 function someFunc1() { ....; } ... some more code ... console.log(variable1); console.log在函数soemFunc1()的外部。 当我启动应用程序并查看控制台时,我发现 console.log()不是函数 为什
JavaScript
包含在shinysui.R
中,如下所示:
tags$body(tags$script(src="someJs.js"))
在我的someJs.js
中,我有一个函数
function someFunc1() {
....;
}
... some more code ...
console.log(variable1);
console.log
在函数soemFunc1()
的外部。
当我启动应用程序并查看控制台时,我发现
console.log()不是函数
为什么呢
我还在headtags$head(tags$script(src=“d3.v3.min.js”)
中加载d3
。
当我尝试d3时,在控制台中选择…,我也会得到
d3不是一个函数
但是,我在我的应用程序中使用了d3
js
在做什么。有一个物体可以把所有东西都连接到它上面吗
这里有一个例子,很容易复制
ui.R
library(shiny)
shinyUI(fluidPage(
tags$head(tags$script(src="https://d3js.org/d3.v3.min.js")),
tags$head(tags$script(src="test.js")),
mainPanel(
tags$div(id = "test", "test test test")
)
)
)
server.R
library(shiny)
shinyServer(function(input, output) {
})
在server.R
和ui.R
所在的同一目录中创建www
文件夹,并保存名为test.js
的js
文件,文件内容如下:
console.log("This will cause error")
现在,继续并打开控制台。
上面说
console.log()不是函数
function someFunc1() {
....;
}
... some more code ...
console.log(variable1);
尝试在浏览器的控制台中键入d3
。上面说
d3不是一个函数
我不确定我是否完全理解您试图做什么,但是如果您试图在JavaScript中使用
console.log()
来查看JavaScript控制台中的内容,那么您应该不会有问题:
library(shiny)
ui <- shinyUI(fluidPage(
mainPanel(
tags$script(HTML(
"console.log('Here is some text');"
))
)
)
)
server <- shinyServer(function(input, output, session) {
})
# Run the application
shinyApp(ui = ui, server = server)
库(闪亮)
ui我不确定我是否完全理解您试图做什么,但是如果您试图在JavaScript中使用console.log()
来查看JavaScript控制台中的内容,那么您应该不会有问题:
library(shiny)
ui <- shinyUI(fluidPage(
mainPanel(
tags$script(HTML(
"console.log('Here is some text');"
))
)
)
)
server <- shinyServer(function(input, output, session) {
})
# Run the application
shinyApp(ui = ui, server = server)
库(闪亮)
uiconsole.log()
是一个JavaScript函数,因此不能在R-Shining中调用它,而期望它在JavaScript中运行。您必须明确地告诉Shiny使用JavaScript进行调用
因为这对我来说是一个相当常见的操作,所以我将其包含在包中,您可以在R中调用logjs()
函数,它将输出写入javascript控制台
例如:
shinyApp(
ui = fluidPage(
shinyjs::useShinyjs() # Set up shinyjs
),
server = function(input, output) {
shinyjs::logjs("hello")
}
)
console.log()。您必须明确地告诉Shiny使用JavaScript进行调用
因为这对我来说是一个相当常见的操作,所以我将其包含在包中,您可以在R中调用logjs()
函数,它将输出写入javascript控制台
例如:
shinyApp(
ui = fluidPage(
shinyjs::useShinyjs() # Set up shinyjs
),
server = function(input, output) {
shinyjs::logjs("hello")
}
)
R控制台还是JavaScript控制台?R控制台还是JavaScript控制台?我知道。问题是,正如您在我的问题中所看到的,我调用JavaScript文件中的console.log()
,然后将其导入glishing
。因此,在那里我应该能够调用console.log()
,因为它是从浏览器中解释的。。。您是否尝试过像我那样导入js
文件?很抱歉,您编写问题的方式令人困惑,难以重现。如果您提供一个完全可复制的、包含整个应用程序代码和整个javascript文件的最小示例,会更好。更好的做法是,不要包含单独的javascript文件,而是首先尝试包含javascript内联。否则很难帮助您,因为我无法重现您看到的错误。我认为,包含许多内联的js
文件,这些文件有许多代码行,这并不会使代码更易于维护。我试着复制。马上回到这里,添加一个可复制的示例是的,使用内联JS并不更易于维护,您应该在应用程序中使用单独的文件。但是当在Stackoverflow上发布时,我们可以更容易、更简单地运行一个代码块,而不必创建两个文件来复制代码。同样,在我的回答中,我对整个应用程序使用了一个代码块,为了运行你的代码,我需要分别复制两个代码块并处理它们。。。只是一些小事情,可以让别人更容易地帮助你,而不会因为摩擦而沮丧:)我知道这一点。问题是,正如您在我的问题中所看到的,我调用JavaScript文件中的console.log()
,然后将其导入glishing
。因此,在那里我应该能够调用console.log()
,因为它是从浏览器中解释的。。。您是否尝试过像我那样导入js
文件?很抱歉,您编写问题的方式令人困惑,难以重现。如果您提供一个完全可复制的、包含整个应用程序代码和整个javascript文件的最小示例,会更好。更好的做法是,不要包含单独的javascript文件,而是首先尝试包含javascript内联。否则很难帮助您,因为我无法重现您看到的错误。我认为,包含许多内联的js
文件,这些文件有许多代码行,这并不会使代码更易于维护。我试着复制。马上回到这里,添加一个可复制的示例是的,使用内联JS并不更易于维护,您应该在应用程序中使用单独的文件。但是当在Stackoverflow上发布时,我们可以更容易、更简单地运行一个代码块,而不必创建两个文件来复制代码。同样,在我的回答中,我对整个应用程序使用了一个代码块,为了运行你的代码,我需要分别复制两个代码块并处理它们。。。只是一些小事情,可以让其他人更容易地帮助你,而不会因为摩擦而感到沮丧:)你是否尝试像我一样在ui.R
中导入ja.js
文件?添加了一个可复制的示例你是否像我一样在ui.R
中导入ja.js
文件?添加了一个可复制的示例