1

在以前的应用程序中,我能够让 TinyMCE 正常工作。但是在这个网络应用程序中,我可以让富编辑器正常显示,但由于某种原因,我无法在富编辑器字段中输入内容,当我单击粗体等按钮时,出现以下错误:

Error: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMNSHTMLDocument.execCommand]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: http://mysite/tiny_mce/tiny_mce.js :: anonymous :: line 1"  data: no]
Source File: http://mysite/tiny_mce/tiny_mce.js
Line: 1

我想知道我能做些什么来调试这里发生的事情。什么可能导致这个奇怪的错误?

一些背景:

此代码加载 TinyMCE:

<script type="text/javascript" src="http://mysite/tiny_mce/tiny_mce.js"></script> 
<script>
tinyMCE.init({
    mode : 'none',
    editor_selector: 'mceAdvanced',
    theme : 'advanced',
    theme_advanced_toolbar_location : 'top',
    theme_advanced_toolbar_align : 'left',
    theme_advanced_buttons1 : 'fontsizeselect,bold,italic,|,bullist,numlist,|,outdent,indent,|,removeformat',
    theme_advanced_buttons2: '',
    theme_advanced_buttons3: '',
    theme_advanced_font_sizes: "1, 2, 3, 4",
    width: '600',
    height: '200',
    remove_script_host : true,
    cleanup_on_startup : true,
    cleanup: true,
    debug : true,
    convert_urls : false
});

tinyMCE.execCommand('mceAddControl', true, 'fldOverview');
</script>

<textarea id="fldOverview" name="fldOverview" class="textbox"><?= OVERVIEW ?></textarea>

测试:

FF3 失败。Opera(最新稳定版)工作。Windows IE7 工作。Safari(最新稳定版)有效。

4

2 回答 2

6

答案就在这里

交易是这样的。曾经使用过脸书吗?我们试图实现一个类似的界面,您可以在其中单击以编辑配置文件部分,它会折叠并使用进度条重新展开,然后折叠并使用配置文件表单重新展开。在那个配置文件表单中,我们有 TinyMCE 富编辑器。

好吧,事实证明,DIV 被隐藏然后显示以显示 TinyMCE 控件存在一个怪癖。它得到了时间或什么?无论如何,我们在 jQuery 中使用 slideToggle API 来折叠和重新扩展 DIV,其中包含我们通过 jQuery AJAX 东西拉回的新内容。当我们这样做时,不知何故,这个 slideToggle API 让我们兴奋不已。

修复方法是像往常一样执行 slideToggle,但在我们使用 execCommand 技术加载 tinyMCE 编辑器之前,我们需要首先使用 jQuery 中的 show API 来确保我们的 DIV 被强制打开和可见。当我们这样做时,问题就消失了。

于 2008-11-13T05:30:16.170 回答
0

您是否在 Firefox 中执行此操作?

因为根据this,当您在 Firefox 中禁用弹出窗口时,由于弹出窗口阻止的实现方式,它会出现。

启用弹出窗口,一切顺利!

于 2008-11-13T04:55:42.947 回答