javascript - TinyMCE 保持隐藏状态(uvw-dialog-open)

标签 javascript css tinymce

好的,我已经开发了一个不错的 tinymce 解决方案,我在其中通过 js 以编程方式创建和销毁所有 tinymce 实例 - 所以,我知道这可能不是 tinymce 实现的日常使用 - 但基本上它的工作方式如下一个魅力。

现在,在我给你具体的示例代码之前 - 我会解释我的奇怪问题:我的一个 friend 是我制作的在线工具的 super 用户,他正在创建/销毁大量的 tinymce 实例那天……

有时,在几个小时的工作之后,他有这样的行为,当他点击“编辑”按钮时,tinymce 不会出现。我从来没有做到,无法自己重现 - 但有一天,在 teamviewer session 中,当错误已经发生时,我能够查看他的屏幕和页面(使用 Firebug )。

所以,很糟糕,我无法通过 javascript 代码进行全面调试(因为在这种情况下,当你按一次 f5 时,错误消失,需要几个小时才能再次得到它)-> 我意识到,当错误发生时 -> tinyMCE 对象本身的一切似乎都正常 -> DOM 渲染中的一切似乎都正常 -> 但是,从一些奇怪的 css-import-file 中,突然有一个定义像这个:

html.uvw-dialog-open object, html.uvw-dialog-open iframe, html.uvw-dialog-open embed {
    visibility: hidden;
}

这导致 tinymce 的主面板不会显示,而且 tinymce 的任何内容都不再可见。此时杀死并重新创建实例不会修复错误,您必须按 f5 并在重新加载后,你甚至无法再次找到这个 css 定义(或者,至少,我无法通过 teamviewer 和他那该死的小笔记本电脑)

所以,我唯一想到的是我自己的 CSS 中的一个丑陋的 hack,告诉我:

html.uvw-dialog-open object, html.uvw-dialog-open iframe, html.uvw-dialog-open embed {
    visibility: visible !important;
}

然后,从那以后……好几个星期了 -> 但是今天,我的 friend 再次调用我,告诉我他看不到 tinymce,又一次……我几乎要流泪了,你可以想象:

好的.. 在编写并重新阅读所有这些行之后 -> 我意识到我的修复不会起作用...两者都是相同的定义并且如果它们出现在同一级别(文件,而不是内联)..我想可能是最后一场比赛获胜,什么是新的、延迟加载的 tinymce 文件.. 所以它肯定会更好,使内联可见性:可见;在 tinymce 的 init_instance_callback 上...

但是,在我绝望的时候,我想我会在 stackoverflow 上写下所有内容 -> 也许有人知道这个问题的真正原因并且..你们是我所知道的最棒的开发人员 :D

最佳答案

杰比,

想法不仅仅是一个确定的答案......

这听起来像是一个内存泄漏问题,因为在一个长生命周期页面中存在大量 javascript/DOM 事件。

您可能没有做错任何事,您不太可能追查到真正的原因,但是您可以采取某些措施:

  • 尝试使您的 tinymce 实例可重复使用,而不是每次都销毁并创建新实例。
  • 定期让页面请求重新提供服务 - 在重新提供的页面中重现整个文档状态(DOM 和 javascript 环境)可能是一个挑战。

大量的工作,但不能保证我会害怕。

关于javascript - TinyMCE 保持隐藏状态(uvw-dialog-open),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12464847/

相关文章:

jquery - 使用 jquery ui-sortable 排序时出现奇怪的绿色/黄色背景

javascript - 如何修复 tinyMCE 卡在 iPad 上,下方有 Canvas ?

javascript - TinyMCE 弹出添加媒体按钮

javascript - 如何为左键单击和中键单击执行一个功能?

javascript - 如何确保 CSS/JS 文件不缓存在浏览器上?

javascript - 如何在原型(prototype)上创建过滤器?

encoding - TinyMCE 禁用转义

javascript - function() 不是 dojo 中的函数

html - 是否有使用 languages 为非空格删除空格的 CSS 解决方案?

html - 表单 - 无法选择或突出显示字段中的文本