2

我对此做了很多研究,但我无法解决这个问题。我有一个 Div,里面有几个 Div,我想在打开 TinyMCE 实例之前隐藏它们。

我正在通过 jQuery 执行此操作 -

$(".drop").hide()

这很好用,除了 Trident (IE) 之外的每个浏览器引擎都隐藏了它们。如果我检查 IE 中的元素,则 css 指示“显示:无”。

我发现了一些关于这是 IE 的一项功能如何显示这些元素的文章和注释,包括 MSDN 上的这篇文章:http: //msdn.microsoft.com/en-us/library/aa770023 (VS.85).aspx

问题是我需要隐藏这些。有任何想法吗?

4

3 回答 3

4

这是因为在可编辑元素内部,IE 使所有内容,包括使用 display: none 隐藏的元素,可编辑。除了从页面的 DOM 中删除要隐藏的元素之外,您无能为力。

此处引用了 IE 的这种行为:http: //msdn.microsoft.com/en-us/library/aa770023%28VS.85%29.aspx

于 2009-08-18T15:21:26.430 回答
0

您可以尝试应用一种将显示设置为非无的样式,例如:

.drop
{
    display: block; // or inline
}

这听起来像是由于 IE 需要元素“具有布局”以便对其进行某些操作,隐藏是其中之一。给定显示类型的元素应该有布局,也就是说,它占用空间并迫使浏览器重新组织它周围的兄弟元素。

于 2008-12-31T22:54:01.273 回答
0

据我所知,tinyMCE 使用 iframe 进行编辑并在 iframe 内启用编辑模式,因此如果您在加载 tinyMCE 之前处于编辑模式,您确定必须将外部文档置于编辑模式。

澄清一下,您是想影响 iframe 的内部还是 tinyMCE 正在加载包含 display: none 的内容

从表面上看,如果您将带有 display: none 的内容加载到 tinyMCE 中,您可能需要做一些混乱的解决方法,即在加载时删除节点并在保存时尝试将它们重新插入到相同的位置。

我能看到的唯一好处是,如果在其他浏览器中,您只需选择节点两侧的文本,就会在不知不觉中删除隐藏节点。

于 2009-01-09T23:11:51.527 回答