【发布时间】:2017-12-08 15:41:14
【问题描述】:
这是一个我只是出于科学兴趣而提出的问题。我没有发现与我的问题相关的问题,但我已经制定了解决方法。
问题:
我的小部件中有一个我想要放置的节点,它与小部件的逻辑上下文相关,是已经构建的其他三个 dom 节点之一。我将domconstruct.place() 用于此任务,并带有“仅”选项以轻松替换可能已放置在此节点中的所有子节点。
它适用于 Chrome、Firefox 和 Edge。在 Internet Explorer 11(以及旧版本)中,每个已构建的 dom 节点将仅在第一次放置。如果第二次放置 dom 节点,则目标节点将为空(旧的子节点将被删除,不会添加新的子节点或至少只有一个没有内容的子节点)。
这是一个简化的JSFiddle 示例来说明问题。
这个小提琴已经包含一个解决方法:只需在放置时重新创建节点。因此,第一个按钮将与 ie 一起使用,每次放置“test1”。按钮 2 和 3 将第一次工作,但从第二次开始不会放置任何东西。如果发生这种情况,第一个按钮仍然可以使用。
不幸的是,在我的真实代码中,提供的解决方法是不可能的。我目前的解决方案包括嗅探 ie 并将所有节点放在同一个地方,使用可见性属性。
如开头所述,我对这个问题很感兴趣。有人知道这种行为吗?它是一个道场/即错误吗?我做错了吗?
【问题讨论】:
标签: javascript internet-explorer dojo