- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我问这个问题只是出于科学兴趣。我没有找到与我的问题相关的问题,但我已经制定了解决方法。
问题:我的小部件中有一个我想放置的节点,与小部件的逻辑上下文相关,是已经构建的其他三个 dom 节点之一。我将 domconstruct.place()
用于此任务,并使用“仅”选项轻松替换可能已放置在此节点中的所有子节点。
它适用于 Chrome、Firefox 和 Edge。在 Internet Explorer 11(以及更早的版本)中,每个已经构建的 dom 节点将仅在第一次放置。如果第二次放置 dom 节点,则目标节点将为空(旧的子节点将被删除,不会添加新的子节点,或者至少只有一个没有内容的子节点)。
这是一个简化的 JSFiddle举例说明问题。
This fiddle 已经包含一种解决方法:只需在放置时重新创建节点。所以第一个按钮将在每次放置“test1”时与 ie 一起使用。按钮 2 和 3 将在第一次工作,但从第二次开始不会放置任何东西。如果发生这种情况,第一个按钮仍然有效。
不幸的是,在我的真实代码中,提供的解决方法是不可能的。我目前的解决方案包括嗅探 ie 并将所有节点放在同一个地方,并使用可见性属性。
如开头所述,我有一位科学家对这个问题感兴趣。有人知道这种行为吗?它是 dojo/ie 错误吗?我做错了什么吗?
最佳答案
这不是 dojo 或 IE 错误,只是浏览器删除节点的方式有所不同。当您对 place()
函数使用 only
属性时,您的容器节点的内容将被 node.removeChild()
清除。虽然你有一个指向你的节点的链接,但它仍然存在于内存中并且只是从树中删除。不同的浏览器以不同的方式执行此操作。在你的情况下,chrome 和 firefox 保留你的节点及其内容在内存中,而 IE 只保留节点,但 innerHTML 被清除。
Here is same question, but regarding IE 7
在我看来你有几种选择:
每次都创建新节点,就像您在 div1 示例中所做的那样
同时将所有节点放入容器中并切换它们的可见性。
为您的节点创建模板化小部件并每次实例化它。
1 和 2 你已经试过了。也许还有一些其他的选择,但我目前没有看到。
关于javascript - Dojo:第二次放置相同的 dom 节点在 IE11 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47717585/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!