2010-11-23 16 views
1

onMouseOverイベントとonMouseOutイベントをTinyMCE内のエディタインスタンス(プラグイン経由)に追加したいと思いますが、TinyMCEのAPIでサポートされていないようです。具体的には、要素がマウスオーバーして「読み取り専用」モード(および場合によっては他のもの)を切り替えると、コントロールが表示されます。これを行うにはTinyMCEにコードを自分で追加する必要がありますか、それとも非自明なルートによってサポートされていますか?コードを追加する必要がある場合、APIにそれを含めないという理由の根拠となるこれらのイベントをサポートすることに対していくつかの禁止がありますか?TinyMCE EditorインスタンスにOnMouseoverイベントを追加する

以下のレスポンダと同じ混乱を起こしている人々の利益を明確にするために、TinyMCEライブラリによって作成されたTinyMCE.Editorインスタンスにイベントをアタッチすることを特に希望しています(このクラスは、 TinyMCE.initのsetupパラメータで使われているコールバックに渡します)。私は、次の

tinyMCE.init({ 
    . 
    . 
    . 
    setup : function(ed) { 
    TinyMCEReadOnlySetup(ed,true); 
    ed.onMouseOver.add(ShowButton(ed)); 
    ed.onMouseOut.add(HideButton(ed)); 
    }, 
    . 
    . 
    . 
}); 

を行いたいが、ED(TinyMCE.Editorのインスタンス)が同様のイベントのやり方でMouseOver.addをサポートしていません。あなたがあなた自身のプラグインで

ed.getDoc().designMode = "Off"; 

を使用することができ、読み取り専用と編集モードを切り替えるには、

+0

"tinymceインスタンスに追加する"とはどういう意味ですか、それをインスタンスまたはhtml要素に追加しますか? – Thariama

+0

私は、TinyMCEによって起動された要素のうち、TinyMCEによって作成されたエディタインスタンスを意味し、JavaScript TinyMCE.Editorオブジェクトインスタンスが作成されています(http://wiki.moxiecode.com/index.php/TinyMCE:API/ tinymce.Editor) –

答えて

0

さてさて、私はその後、INIT属性で、以下の非常にハック-yのコードを追加し、プラグインを作成することで、この作業を取得することができました:

ed.onInit.add(function(ed){ 
        . 
        . 
        . 

    document.getElementById(ed.id + '_parent').setAttribute('onmouseover', 
     "tinyMCE.editor_ShowButton('" + ed.id + "');"); 
    document.getElementById(ed.id + '_parent').setAttribute('onmouseout', 
     "tinyMCE.editor_HideButton('" + ed.id + "');"); 
    //ed.getBody().appendChild(newdiv); 
}); 

これは、最適な解決策はありませんが、それは取得します仕事が終わった。

0

。また、エディタの内容を保存し、onChangeが起動された場合に復元することもできます。

EDIT:

あなたはあなたがあなたのプラグインの一部のOnInitでこれを行うことができ

$('#' + ed.id +'_parent').bind('mouseover',function (evt){ 
    setTimeout("console.log('mouseover')",50);return false; 
}); 

を使用することができmouseoverイベントリスナーを設定します。

+0

実際には質問ではありません。 onmouseoverイベントを編集フィールドに付ける方法を知りたいと思います。読み込み専用モードと編集モードを切り替える方法ではありません。 –

+0

私は答えを編集しました – Thariama

+0

これはおそらく良い解決策ですが、残念ながらjQueryはこのサブプロジェクトには使用できません。私はedオブジェクトのdom属性を使用できるかもしれないと信じています。もし動作すれば結果を投稿します。 –

関連する問題