将r2d3的JavaScript控制台输出呈现到浏览器控制台而不是可视化?

时间:2019-04-08 15:33:22

标签: r2d3

来自r2d3

JavaScript控制台输出直接呈现到RStudio查看器可视化中,而不是javascript控制台中。参见documentation

这似乎也是

时的行为

r2d3::r2d3(..., viewer = 'browser')

console.log()甚至在浏览器中也不会输出到控制台。

是否存在一种干净的方法来更改此行为,以便将console.log() D3.js中的r2d3信息发送到浏览器控制台?

1 个答案:

答案 0 :(得分:2)

R2D3覆盖包含可视化代码的影子DOM中的控制台。这就是为什么更改控制台行为的原因-看起来不错,但不允许更仔细地检查对象或隐藏控制台。

在创建可视化文件时,似乎没有任何参数可以修改此参数。留下两个选项,修改包或向可视化添加一行javascript。我将与后者一起去。

文档窗口本身仍然保留默认的控制台行为,因此我们可以使用它来重新定义影子DOM控制台行为。在可视化中,在第一行添加:

console = d3.window(svg.node()).console;

还有其他访问窗口的方法,但这应该足够了,可能是最短的,它不适用于d3v3,可以使用:

console = svg.node().ownerDocument.defaultView.console;

是的,这不是理想的选择,但有点笨拙,但肯定比更改R源(在更新软件包时继续这样做)要容易得多。