Javascript 输出忽略<;头>;或<;脚本>;标签
我正试图通过Outdooractive的API在我闪亮的应用程序中包含Outdooractive(.com)映射,该API使用一个html页面,页眉中有一个脚本标记,正文中有一个JavaScript标记 使用Outdooractive的html模板时,将其保存为html文件,然后通过Javascript 输出忽略<;头>;或<;脚本>;标签,javascript,html,r,api,shiny,Javascript,Html,R,Api,Shiny,我正试图通过Outdooractive的API在我闪亮的应用程序中包含Outdooractive(.com)映射,该API使用一个html页面,页眉中有一个脚本标记,正文中有一个JavaScript标记 使用Outdooractive的html模板时,将其保存为html文件,然后通过includeHTML(“originalFile.html”)将其包含在闪亮的应用程序中,地图将正确显示。但是,由于我希望地图的坐标是交互式的(不在两者之间保存到文件),因此我尝试使用闪亮的标记在renderUI中
includeHTML(“originalFile.html”)
将其包含在闪亮的应用程序中,地图将正确显示。但是,由于我希望地图的坐标是交互式的(不在两者之间保存到文件),因此我尝试使用闪亮的标记在renderUI
中创建html,并通过uiOutput
显示它。这样做时,JavaScript部分似乎根本没有被处理。将显示地图上方的标题及其下方的文本,但地图将被忽略,且不会显示错误消息。有趣的是,当我将标签tags$head
替换为tags$header
时也会发生同样的情况
这是我的app.R
:
library(shiny)
# Define UI for application that draws a histogram
ui <- fluidPage(
# Application title
titlePanel("Outdooractive Map"),
# Sidebar with a text input for coordinates
sidebarLayout(
sidebarPanel(
textInput ("lng",
"Longitude:",
value = "10.000",
),
textInput("lat",
"Latitude:",
value = "45.555")
),
# Show the map
mainPanel(
#includeHTML("originalFile.html") # This works
textOutput("text"), # This shows the correct longitude/latitude
uiOutput("map") # This seems to ignore the script
)
)
)
# Define server logic required to access API
server <- function(input, output) {
output$map <- renderUI({
lng = input$lng
lat = input$lat
tags$html(
tags$div(
tags$head(tags$title("Test"),
HTML('<meta charset="utf-8">'),
tags$script(
src = '//www.outdooractive.com/alpportal/oa_head.js?proj=api-dev-oa&key=yourtest-outdoora-ctiveapi&lang=en'
),
tags$style(HTML(
'.oax .oax-cluster-marker-cont, .oax-cluster-marker-cont {background-color: red;}'
))),
tags$body(
h2("Outdooractive Routes"),
div(class = 'oax-top-cont'),
tags$script(HTML(paste(
'var conf = {frontendtype: "tour", zoom: 11, center:[ ', lng, ", ", lat, ']}; var fvp = oa.api.flexviewpage( conf );')
)),
HTML('There should be a map on top of me.')
)
),
)
})
output$text <- renderText ({
paste(input$lng, input$lat)
})
}
# Run the application
shinyApp(ui = ui, server = server)
任何指针都将不胜感激。我宁愿在观察家中调用一些
JavaScript
:
库(闪亮)
图书馆(shinyjs)
图书馆(胶水)
#为绘制直方图的应用程序定义UI
我非常感谢你!地图现在使用最初定义的坐标正确显示地图,但是当您以交互方式更改坐标时,它是否做出了适当的反应?当我这样做时,地图会向右跳一点,然后回到原始坐标,就好像新的JS
不断被旧的覆盖一样。是这样吗?如果是这样,在运行更新的脚本之前,是否有方法停止旧脚本?当我更改坐标时,将重新绘制地图,显示输入中选择的中心坐标。这是在您键入时发生的,因此您可能需要?去Bounce
对文本输入更改不立即作出反应,而只在soem时间内作出反应?我添加了一个操作按钮
,这样它只会在我输入完整坐标后进行处理,但仍然不会更新。有趣的是,它一旦在网上发布就可以工作,这就是我所需要的。谢谢!奇怪的是,我添加了一个gif来显示地图转换是如何为我工作的。根本没有“向右跳”。
<!DOCTYPE html>
<html>
<head>
<title>outdooractive platform - API Template</title>
<meta charset="utf-8">
<!-- load Outdooractive Javascript API -->
<script type="text/javascript"
src="//www.outdooractive.com/alpportal/oa_head.js?proj=api-dev-oa&key=yourtest-outdoora-ctiveapi&lang=en"></script>
<style>
.oax .oax-cluster-marker-cont, .oax-cluster-marker-cont {
background-color: red;
}
</style>
</head>
<body>
<br>
<br>
<h2>Outdooractive Routes</h2>
<!-- container used by FlexView API -->
<div class="oax-top-cont"></div>
<!-- and some lines of javascript inside a script tag -->
<script type="text/javascript">
var conf = {
frontendtype: "tour", // choose content type
zoom: 11, // set initial zoom level
center: [ 10.292, 47.546 ] // set initial map center
};
var fvp = oa.api.flexviewpage( conf );
</script>
</body>
</html>