web-dev-qa-db-ja.com

JCE / TinyMCE-有効なHTMLと無効なHTMLを修正しようとし続ける

私たちが使用したすべてのJoomlaエディターの中で、JCEは私たちの目的とクライアントに最も適しています。しかし、何かをコード化するときに問題を引き起こす可能性のあるエディターのいくつかの問題があり、それがwysiwygに切り替えられ、エディターは完全に有効なhtmlを「修正」しようとします。

質問する前に、はい、JCEが制限するすべての要素を許可するように設定しています。いいえ、htmlを検証/クリーンアップするように設定されていません。私たちが持っている唯一の制限は、エディターにコンテンツを貼り付けることです。

別紙A:

<a href="#"></a>

これは、エディタを切り替えて戻ると消えます。交換された:

<p>&nbsp;</p>

別紙B:

<a id="#nameofanchor"></a>

変更点:

<p>&nbsp;</p>

別紙C:

<div><a id="#nameofanchor"></a></div>

変更点:

<div>&nbsp;</div>

別紙D:

<a id="hello" class="link">Hello</a>

変更点:

<p><a id="hello" class="link"></a>Hello</p>

別紙E:

<a href="#">
<div>
<h2>Our Work</h2>
</div>
</a>

変更点:

<p><a href="#"></a></p>
<div>
<h2><a href="#">Our Work</a></h2>
</div>
<p>&nbsp;</p>

アンカーには名前の代わりにidを使用します。これは、HTML5では有効ですが、技術的には名前がそうでないためです。また、IDはどのユニバースでリンクへの無効な割り当てですか?

また、divをリンクでラップすることが完全に合法になったので、JCEがリンクも削除するのはなぜですか?

これは私が見逃している設定ですか?エディターを必要に応じてコーディングできるようにエディターを使用する方法について誰か洞察がありますが、クライアントは単にwysiwygに保存するだけではそれを壊すことはできませんか?

編集:これをchrome、firefox、safariでテストしました。ブラウザとは何の関係もないと思います。

編集:私はこれをコンテナ設定でテストしました。 Enterの段落コンテナーと段落、およびEnterのDivコンテナーとDivの両方が原因です。他の2つは、入力時にコンテナーなしと段落なし、入力時にコンテナーなしと改行なしで発生しません。問題は-最初の設定が必要です!クライアントに疑いの恩恵を与えるのは素晴らしいことですが、クライアントは指示に従って段落の書式をテキストに追加することを信頼できません。

確認済み:これはTinyMCEでも発生します。

だから-私たちはこれの原因を知っています-パラグラフコンテナー設定-その設定を維持しながらどうやってそれを回避するのですか?

9
Faye

私はすべてのサイトでJCEエディターを使用していますが、NoNumbersによるSourcererのインストールも開始しています。これにより、JCEエディターに簡単に[コードを挿入]ボタンが提供され、変更から保護されます。

http://www.nonumber.nl/extensions/sourcerer

7
YellowWebMonkey

JCEにはいくつかの秘密の設定があります。次の設定が停止することを知っています&nbsp;空のdivに追加されます。フロートをクリアするために使用される場合があり、レンダリング時に行の高さの問題が発生します。

In the Editor Global Configuration, add:
remove_div_padding:1 
to Custom Configuration Variables. 

エディタのあらゆる側面を制御できるものがもっとあると思います。

2
BodgeIT

Profile-> Editor Parameters-> Typographyのタイポグラフィ設定である必要があると思います。コンテナ要素とEnterキーをEnter時にNoContainer&LineBreakに設定して、まだHTMLに変更が適用されているかどうかを確認してください。

また、HTML検証設定には各エディタープロファイルの設定があり、Joomlaはユーザーグループによって設定されたグローバル構成ページでグローバルフィルターも提供することも覚えておいてください。各ユーザーグループの設定がないことを確認してください。

1
FFrewin

この動作はJCEに固有のものではありません。 TinyMCEは同じように動作します。この動作はTinyMCEに限定されず、ブラウザのDOM動作である可能性があります。

JCEは実際にはいくつかの空のタグを保持しようとする問題に直面します。採用されている方法は、スペースで埋めることです。

https://github.com/widgetfactory/jce-editor/blob/master/editor/tiny_mce/plugins/cleanup/editor_plugin.js

0
Peter Wiseman