ページの 1 つに TinyMCE エディターを追加しています。私の給料以上の理由で、TinyMCE 3.5.4.1 を使用しています。
onFocus イベント ハンドラーを配線しようとした場合を除いて、かなりうまくいきました。ハンドラーを使用しない場合、エディターが表示されて正常に動作しますが、ハンドラーを定義するページでは、試したブラウザーの種類 (IE8、9、10 および Chrome) の TinyMCE 内に大量の例外が発生します。 )。
ここで見た他の投稿のテンプレートを使用してきましたが、これらすべての TinyMCE 例外について言及していません。もちろん、縮小されたスクリプトを巻き戻そうとするのは本当に面倒です。
ここで見つけた最初の例では、TinyMCE 構成に次のようなセットアップ機能がありました。
, setup: function (ed) {
ed.onInit.add(function (ed, evt) {
if (!myFocus) return; // global for the handler to use
var dom = ed.dom;
var doc = ed.getDoc();
tinymce.dom.Event.add(doc, 'focus', myFocus);
});
}
myFocus が定義されている場合、TinyMCE が if (j.isIE){l.attachEvent(...)} で始まる多数の例外をスローし、l.attachEvent が存在しないことを訴えます。次に、あらゆる種類の変数型の不一致に進みます。
Chrome 開発者ツールは、縮小されたコードをいじるのがはるかに厄介なので、何が気に入らないのかわかりません。
ここで見つけた別の投稿では、最小限のブラウザ検出を行うことを提案していましたが、これは IE も Chrome も役に立ちませんでした。
var doc = s.content_editable ? ed.getBody() : (tinymce.isGecko ? ed.getDoc() : ed.getWin())
別の投稿で別のアプローチが提案されましたが、両方のブラウザーで同じエラーが発生しました。
, setup: function (ed) {
ed.onInit.add(function (ed, evt) {
if (!myFocus) return;
ed.onFocus.add(myFocus);
});
}
私も試してみました(無駄に)
, setup: function (ed) {
if (!myFocus) return;
ed.onFocus.add(myFocus);
}
TinyMCE でのイベント処理は非常に脆弱ですか? ブラウザー間で十分にサポートされていませんか? 私はそれを避けて、jQueryなどを使ってみるべきですか?
ありがとうマーク