【发布时间】:2016-10-17 20:37:15
【问题描述】:
我在 rMarkdown 文档中实现了 html 下拉菜单的简单实现,我正在使用 V8 r 包来使用 javascript 来做到这一点。
---
title: "js + plotly"
author: ""
date: "`r Sys.Date()`"
output:
ioslides_presentation:
widescreen: true
smaller: false
---
## Zero slide
<div>
<select name="newSkill" id="newSkill">
<option value="1">A skill</option>
<option value="2">Another skill</option>
<option value="3">Yet another skill</option>
</select>
</div>
```{r}
library(V8)
ct <- v8()
ct$assign("getFromDrop", JS("(function(){var skillsSelect = document.getElementById('newSkill'); var selectedText = skillsSelect.options[skillsSelect.selectedIndex].text; return(selectedText);})"))
ct$assign("bar", JS("getFromDrop()"))
output <- ct$get("bar")
print(output)
```
我不知道我做错了什么,但它不起作用。我收到以下错误消息:
eval(substitute(expr), envir, enclos) 中的错误: ReferenceError:文档未定义 调用:... get_str_output -> 相同 -> context_eval -> .Call
请你给我一个提示或建议,要改变什么才能按预期工作。非常感谢。
【问题讨论】:
-
我不确定你想做什么工作。 V8 不会从浏览器会话中读取。它实例化了自己的 V8 环境。
-
我需要从下拉菜单中的选定项目中提取文本并将其发送到 r 变量。
-
有什么办法可以做到吗?
-
切换到使用 Shiny
-
我想避免闪亮,我只需要使用纯 html 和 javascript。
标签: javascript html r r-markdown