ページ 11

TinyMCEでブロックレベル要素のリンクが削除される

Posted: 2016年10月26日(水) 14:59
by reiko
ブロックレベル要素のリンクがあるページをTinyMCEで編集しようとすると、
<div>などを囲った<a>タグが削除されてしまいます。

回避する方法がありましたら教えていただきたいです。


【例】
<a href="#">
<div>text</div>
</a>

↓TinyMCEで開くと、<a>タグが削除される

<div>text</div>


どうぞよろしくお願いいたします。

TinyMCEでブロックレベル要素のリンクが削除される

Posted: 2016年10月26日(水) 15:14
by yama
TinyMCEの開発元に確認しないと分かりませんが、おそらくTinyMCEは構文的に正しくないHTMLをもともと扱えない仕様になっているように思います。(ブロック要素をインライン要素で囲むことはできなかったと思います)

TinyMCEでブロックレベル要素のリンクが削除される

Posted: 2016年10月26日(水) 16:18
by reiko
yama様

回答いただきありがとうございます。
確かにTinyMCE本家のデモでも試してみたのですが、そちらでもブロックレベル要素のリンクは使えませんでした。

一応、HTML5からインライン要素とブロックレベル要素の分類が廃止され、ブロック要素をリンクタグで囲っても良くなったようです。
W3Cのバリデータでチェックしても、HTML5の場合は<a>の中に<div>があっても問題ありません。
HTML 4.01ではエラーが出ます。

ただ私はHTML5の仕様をきちんと理解しているわけではないので、もしかしたらダメな理由があるのかもしれません。

TinyMCEでブロックレベル要素のリンクが削除される

Posted: 2016年10月27日(木) 13:51
by yama
https://www.tinymce.com/docs/demo/format-html5/
http://codepen.io/tinymce/pen/dYwREe
実際に試してみたところ、TinyMCE4だと設定によっては使えるみたいです(MODX用のTinyMCE4は開発中です)

TinyMCEでブロックレベル要素のリンクが削除される

Posted: 2016年10月28日(金) 14:40
by reiko
TinyMCE4でできるというコメントを見てもう一度やってみたところ、
valid_childrenを設定したら<a>タグの中に<div>を入れられました!
調べ方が足りず申し訳ありませんでした。

今後のMODXのTinyMCE4対応に期待したいと思います。