Javascript IE设计模式显示显示:无Divs
我对此做了很多研究,但我无法解决这个问题。我有一个Div,其中有几个Div,我想在打开TinyMCE实例之前隐藏它们 我通过jQuery来做这件事-Javascript IE设计模式显示显示:无Divs,javascript,jquery,internet-explorer,tinymce,designmode,Javascript,Jquery,Internet Explorer,Tinymce,Designmode,我对此做了很多研究,但我无法解决这个问题。我有一个Div,其中有几个Div,我想在打开TinyMCE实例之前隐藏它们 我通过jQuery来做这件事- $(".drop").hide() 这很好用,除了Trident(IE)之外的每个浏览器引擎都会隐藏它们。如果我检查IE中的元素,css指示“display:none” 我找到了一些关于这是IE的一项功能如何展示这些元素的文章和注释,包括MSDN上的这篇: 问题是我需要把它们藏起来。有什么想法吗?您可以尝试应用一种样式,将显示设置为“无”以外的其
$(".drop").hide()
这很好用,除了Trident(IE)之外的每个浏览器引擎都会隐藏它们。如果我检查IE中的元素,css指示“display:none”
我找到了一些关于这是IE的一项功能如何展示这些元素的文章和注释,包括MSDN上的这篇:
问题是我需要把它们藏起来。有什么想法吗?您可以尝试应用一种样式,将显示设置为“无”以外的其他样式,例如:
.drop
{
display: block; // or inline
}
这听起来像是IE需要元素“有布局”才能对其执行某些操作,而隐藏是其中之一。给定块显示类型的元素应具有布局,即,它占用空间并强制浏览器重新组织周围的同级元素。据我所知,tinyMCE使用iframe进行编辑,并在iframe中启用编辑模式。因此,如果在加载tinyMCE之前处于编辑模式,您确定必须将外部文档置于编辑模式 为了澄清,您是想影响iframe的内部,还是tinyMCE正在加载包含display:none的内容 如果在tinyMCE中加载带有display:none的内容,您可能需要做一些混乱的工作,在加载时删除节点,并在保存时尝试将它们重新插入相同的位置
我能看到的唯一好处是,如果在其他浏览器中,您只需选择节点两侧的文本,就会不知不觉地删除隐藏的节点。这是因为在可编辑元素中,IE使所有内容(包括显示时隐藏的元素)都可编辑:无。除了从页面的DOM中删除您希望隐藏的元素之外,您对此无能为力
这里提到了IE的这种行为:现在就是这样设置的。我相当确定这与hasLayout有关,但不确定如何使其工作。您是否有我可以查看的在线示例?不幸的是,没有,它是内部的。TinyMCE正在加载内容,特别是divs,包含
display:none
。谢谢,我找到了那篇文章,但值得注意。谢谢