Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么console.log不是R的函数?_Javascript_R_D3.js_Shiny - Fatal编程技术网

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()不是函数

为什么呢

我还在head
tags$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)
库(闪亮)
ui
console.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
文件?添加了一个可复制的示例