r2d3 - 将 r2d3 的 JavaScript 控制台输出渲染到浏览器控制台而不是可视化?
问题描述
JavaScript 控制台输出r2d3
直接呈现到 RStudio 查看器可视化中,而不是 JavaScript 控制台。请参阅文档。
这似乎也是当
r2d3::r2d3(..., viewer = 'browser')
即,console.log()
即使在浏览器中也不会输出到控制台。
是否有一种干净的方法来改变这种行为,以便将 D3.js 中的console.log()
信息r2d3
发送到浏览器控制台?
解决方案
R2D3 会覆盖包含可视化代码的影子 DOM 中的控制台。这就是控制台行为被改变的原因 - 这可能看起来不错,但不允许更仔细地检查对象或隐藏控制台。
在创建可视化时似乎没有任何参数可以修改它。这留下了两个选项,修改包或向可视化添加一行 javascript。我会和后者一起去这里。
文档窗口本身仍然保留默认的控制台行为,因此我们可以使用它来重新定义影子 DOM 控制台行为。在可视化中,在第一行添加:
console = d3.window(svg.node()).console;
还有其他访问窗口的方法,但这应该足够了,并且可能是最短的,它不适用于 d3v3,它可以使用:
console = svg.node().ownerDocument.defaultView.console;
是的,它并不理想而且有点老套,但它肯定比更改 R 源代码更容易(并且在更新包时继续这样做)。
推荐阅读
- python - 为 numpy 3D 数组制作快速自定义过滤器
- odoo-8 - 超过 1 个产品要听写
- ansible - Ansible - 获取所有已更改文件的列表 [在 md5 检查后]
- javascript - CORS Axios Redmine
- android - 评论中的 Kotlin 断线不起作用
- java - Java文件路径作为目录路径
- oauth-2.0 - IdentityServer3 OAuth2 LinkedIn 外部登录返回访问被拒绝
- ios - 内存泄漏与 init(coder:)
- php - 在 laravel 查询中传递函数值
- php - Wordpress 仪表板帖子,页面编辑链接在安装 SSL 后不起作用