2

我正在尝试在强制导向布局中创建 Shift+Click 操作,并将以下代码应用于节点形状:

.on("click",function(){
        if(d3.event.shiftKey){
                //do something
        }
});

代码往往可以正常运行,但偶尔会导致浏览器崩溃(Chrome 和 Safari 都崩溃)。似乎崩溃发生在以下序列之后

  • 在节点外的任意位置单击并拖动光标(以便显示文本光标)
  • 在节点外按住光标的同时按住 shift 键(仍显示文本光标)
  • 点击节点

更新:看来这个崩溃不是我的代码独有的。通过执行以下操作,我可以在任何强制导向的布局上使浏览器崩溃:在一直按住 shift 的同时,单击空白区域,单击节点。

也许某些内置的移位功能妨碍了 D3?例如,alt 键适用于我上面的代码。

谢谢!

4

1 回答 1

1

我们遇到了类似的情况,它似乎是一个 Chrome 错误:https ://bugs.webkit.org/show_bug.cgi?id=114745

webkit 中的默认行为可能是 shift-click 选择直到当前光标位置的所有文本是崩溃的机制。

我们还没有花时间跟踪 d3 中的细节,但正如错误报告所暗示的那样,现在可以通过对任何以前关注的元素进行“模糊”调用来绕过它(参见错误报告)。

于 2013-09-11T22:32:26.340 回答