1

以前のアプリケーションでは、TinyMCEを正常に動作させることができました。しかし、このWebアプリでは、リッチエディターが正常に表示されますが、何らかの理由でリッチエディターのフィールドに入力できず、太字のようなボタンをクリックすると、次のエラーが発生します。

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(最新の安定版)が動作します。WindowsIE7は動作します。Safari(最新の安定版)が動作します。

4

2 に答える 2

6

答えはここにあります。

取引はこれです。Facebookを使ったことがありますか?クリックしてプロファイル セクションを編集する同様のインターフェースを実装しようとしていましたが、それは進行状況バーで折りたたまれて再展開され、プロファイル フォームで折りたたまれて再展開されます。そのプロファイル フォームには、TinyMCE リッチ エディターがありました。

さて、TinyMCE コントロールを表示するために、DIV が非表示になってから表示されるという癖があることがわかりました。タイミングズレか何か?とにかく、jQuery で slideToggle API を使用して、jQuery AJAX を介してプルバックした新しいコンテンツで DIV を折りたたんで再展開していました。そして、私たちがそうしたとき、どういうわけか、このslideToggle APIが私たちを悩ませました.

修正は、通常どおりに slideToggle を実行することでしたが、tinyMCE エディターを execCommand 手法でロードする前に、まず jQuery で show API を使用して、DIV が強制的に開かれ、表示されるようにする必要があります。私たちがそれをしたとき、問題はなくなりました。

于 2008-11-13T05:30:16.170 に答える
0

これをFirefoxで実行していますか?

これによると、ポップアップのブロックが実装されている方法のために、Firefoxでポップアップを無効にすると表示されます。

ポップアップを有効にすれば、準備完了です。

于 2008-11-13T04:55:42.947 に答える