我已就此做了大量研究,但我无法解决这个问题。在开启TinyMCE实例之前,我有一个包含几个Div的Div,我想隐藏它。
我是通过jQuery做的 -
$(".drop").hide()
这很好用,除Trident(IE)之外的每个浏览器引擎都隐藏它们。如果我检查IE中的元素,则css表示“display:none”。
我发现了一些文章和笔记,关于这是IE的一个功能,以显示这些元素,包括MSDN上的这个元素:http://msdn.microsoft.com/en-us/library/aa770023(VS.85).aspx
问题在于我需要隐藏它们。有什么想法吗?
答案 0 :(得分:4)
这是因为在一个可编辑的元素中,IE会创建所有内容,包括使用display:none隐藏的元素,可编辑。除了从页面的DOM中删除要隐藏的元素之外,你无能为力。
这里提到IE的这种行为:http://msdn.microsoft.com/en-us/library/aa770023%28VS.85%29.aspx
答案 1 :(得分:0)
您可以尝试应用将显示设置为非空的样式,例如:
.drop
{
display: block; // or inline
}
这听起来像是由于IE需要元素“有布局”才能对其进行某些操作,隐藏其中之一。给定显示类型块的元素应该具有布局,即占用空间并强制浏览器重新组织它周围的兄弟元素。
答案 2 :(得分:0)
据我所知,tinyMCE使用iframe编辑并在iframe中启用编辑模式,因此如果您在加载tinyMCE之前处于编辑模式,则确定必须将外部文档置于编辑模式。
为了澄清,您是否试图影响iframe的内部,或者是包含display:none
的tinyMCE加载内容如果您要将带有display:none的内容加载到tinyMCE中,则可能需要执行某种混乱的解决方法,在加载时删除节点并尝试在保存时将它们重新插入相同的位置。
我能看到的唯一好处是,如果在其他浏览器中,您只需选择节点两侧的文本就会在不知不觉中删除隐藏节点。</ p>