将 r2d3 的 JavaScript 控制台输出渲染到浏览器控制台而不是可视化?
Render JavaScript console output from r2d3 into browser console instead of the visualization?
来自 r2d3
的 JavaScript 控制台输出直接呈现到 RStudio 查看器可视化而不是 javascript 控制台。参见 documentation。
这似乎也是
时的行为
r2d3::r2d3(..., viewer = 'browser')
即 console.log()
即使在浏览器中也不会输出到控制台。
是否有一种干净的方法来更改此行为,以便将 r2d3
D3.js 中的 console.log()
信息发送到浏览器控制台?
R2D3 覆盖包含可视化代码的阴影 DOM 中的控制台。这就是改变控制台行为的原因 - 这可能看起来不错,但不允许更仔细地检查对象或隐藏控制台。
创建可视化时似乎没有任何参数可以修改它。这就留下两个选项,修改包或者在可视化中添加一行javascript。我会在这里选择后者。
文档window本身仍然保留默认控制台行为,所以我们可以用它来重新定义影子DOM控制台行为。在可视化中,在顶行添加:
console = d3.window(svg.node()).console;
还有其他访问window的方法,但这应该足够了,而且可能是最短的,它不适用于d3v3,可以使用:
console = svg.node().ownerDocument.defaultView.console;
是的,它并不理想,而且有点老套,但它肯定比更改 R 源(并在更新包时继续这样做)更容易。
r2d3
的 JavaScript 控制台输出直接呈现到 RStudio 查看器可视化而不是 javascript 控制台。参见 documentation。
这似乎也是
时的行为r2d3::r2d3(..., viewer = 'browser')
即 console.log()
即使在浏览器中也不会输出到控制台。
是否有一种干净的方法来更改此行为,以便将 r2d3
D3.js 中的 console.log()
信息发送到浏览器控制台?
R2D3 覆盖包含可视化代码的阴影 DOM 中的控制台。这就是改变控制台行为的原因 - 这可能看起来不错,但不允许更仔细地检查对象或隐藏控制台。
创建可视化时似乎没有任何参数可以修改它。这就留下两个选项,修改包或者在可视化中添加一行javascript。我会在这里选择后者。
文档window本身仍然保留默认控制台行为,所以我们可以用它来重新定义影子DOM控制台行为。在可视化中,在顶行添加:
console = d3.window(svg.node()).console;
还有其他访问window的方法,但这应该足够了,而且可能是最短的,它不适用于d3v3,可以使用:
console = svg.node().ownerDocument.defaultView.console;
是的,它并不理想,而且有点老套,但它肯定比更改 R 源(并在更新包时继续这样做)更容易。