我正在尝试从DOM中删除一个元素,该元素是通过以下方式添加的:
document.body.children.add(new DivElement()..innerHtml = "Hello World");
代码
document.body.children.remove(document.body.children.last);
或
document.body.children.removeLast();
在Dartium中运行正常但在使用“Assertion failed”-Error编译为JS时在Chrome中失败。失败的断言是:assert(node instanceof Node);
并置于shadow_dom.debug.js:3364:5中。似乎要删除的节点不是Node的实例吗?
有什么变通方法吗? Dart SDK版本为1.2.0,Chrome版本为32.0.1700.76 m。
答案 0 :(得分:1)
来自jmesserly的bug:
啊,这是Shadow DOM的一个已知限制。尝试:
document.querySelector('body')
不幸的是,从之前的错误提交 https://github.com/polymer/ShadowDOM显然不可能 在polyfill中解决这个问题。
唯一有问题的成员是直接访问“文档”和 导航树。一旦你调用一个方法(比如 querySelector),之后的任何东西都可以工作。如果你使用“身体”a 很多,然后尝试:
final body = document.querySelector('body');