我可以从 R jupyter 笔记本中调用自定义 javascript
Can I call custom javascript from an R jupyter notebook
我有一个使用 R 编程语言的 Jupyter Notebook
。我想在这个 R 笔记本中调用 javascript functions
。
我知道有一种方法可以做到这一点,因为可以从 R 调用基于 javascript 的库,但我找不到任何包装 javascript 函数的示例,所以它可以被R使用。
即使是将 javascript 分配给 R variable
然后调用该 R 变量的示例也会有所帮助。
js::js_eval()
可以在 R 中评估 JavaScript 的字符串。来自 ?js::js_eval
:
# Stateless evaluation
js_eval("(function() {return 'foo'})()")
对于更复杂的 JavaScript 操作,请查看 V8
,它可以让您为多行保留一个 JavaScript 实例。来自 ?V8::v8
:
# Create a new context
ctx <- v8();
# Evaluate some code
ctx$eval("var foo = 123")
ctx$eval("var bar = 456")
ctx$eval("foo+bar")
最终,除了小技巧之外,任何事情都会让人非常沮丧,但它确实有效。如果你聪明的话,你可能会获取整个脚本,但我不确定它是否值得,除非有一些绝对只能在 JavaScript 中完成的事情。快乐黑客!
我只是想添加这个答案,以防有人对在 Jupyter R 中使用 javascript/html 感兴趣。以下是一个非常基本的示例:
test="<input type=\"file\" id=\"myFile\"/>"
as.factor(test)
as.factor() 删除了引号,但您基本上可以将 javascript/html 分配给 r 变量并调用该变量。例如:
test="<input type=\"file\" id=\"myFile\"/>"
test
所以我找到了另一种方法,即使用 HTML 函数。这是一个通过单击文本显示和隐藏单元格中的代码的示例。
from IPython.core.display import HTML
HTML("""
<style>
// add your CSS styling here
</style>
<script>
var code_show=true; //true -> hide code at first
function code_toggle() {
$('div.prompt').hide(); // always hide prompt
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
<a href="javascript:code_toggle()"
style="text-decoration:none; background-color: none;color:black;">
<h1 align="center">Example</h1>
</a>
""")
我有一个使用 R 编程语言的 Jupyter Notebook
。我想在这个 R 笔记本中调用 javascript functions
。
我知道有一种方法可以做到这一点,因为可以从 R 调用基于 javascript 的库,但我找不到任何包装 javascript 函数的示例,所以它可以被R使用。
即使是将 javascript 分配给 R variable
然后调用该 R 变量的示例也会有所帮助。
js::js_eval()
可以在 R 中评估 JavaScript 的字符串。来自 ?js::js_eval
:
# Stateless evaluation js_eval("(function() {return 'foo'})()")
对于更复杂的 JavaScript 操作,请查看 V8
,它可以让您为多行保留一个 JavaScript 实例。来自 ?V8::v8
:
# Create a new context ctx <- v8(); # Evaluate some code ctx$eval("var foo = 123") ctx$eval("var bar = 456") ctx$eval("foo+bar")
最终,除了小技巧之外,任何事情都会让人非常沮丧,但它确实有效。如果你聪明的话,你可能会获取整个脚本,但我不确定它是否值得,除非有一些绝对只能在 JavaScript 中完成的事情。快乐黑客!
我只是想添加这个答案,以防有人对在 Jupyter R 中使用 javascript/html 感兴趣。以下是一个非常基本的示例:
test="<input type=\"file\" id=\"myFile\"/>"
as.factor(test)
as.factor() 删除了引号,但您基本上可以将 javascript/html 分配给 r 变量并调用该变量。例如:
test="<input type=\"file\" id=\"myFile\"/>"
test
所以我找到了另一种方法,即使用 HTML 函数。这是一个通过单击文本显示和隐藏单元格中的代码的示例。
from IPython.core.display import HTML
HTML("""
<style>
// add your CSS styling here
</style>
<script>
var code_show=true; //true -> hide code at first
function code_toggle() {
$('div.prompt').hide(); // always hide prompt
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
<a href="javascript:code_toggle()"
style="text-decoration:none; background-color: none;color:black;">
<h1 align="center">Example</h1>
</a>
""")