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

質問全般・改善要望
reiko
メンバー
メンバー
記事: 6
登録日時: 2016年3月04日(金) 14:23

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

投稿記事by reiko » 2016年10月26日(水) 14:59

ブロックレベル要素のリンクがあるページをTinyMCEで編集しようとすると、
<div>などを囲った<a>タグが削除されてしまいます。

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


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

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

<div>text</div>


どうぞよろしくお願いいたします。
アバター
yama
管理人
記事: 2930
登録日時: 2009年7月29日(水) 02:50

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

投稿記事by yama » 2016年10月26日(水) 15:14

TinyMCEの開発元に確認しないと分かりませんが、おそらくTinyMCEは構文的に正しくないHTMLをもともと扱えない仕様になっているように思います。(ブロック要素をインライン要素で囲むことはできなかったと思います)
reiko
メンバー
メンバー
記事: 6
登録日時: 2016年3月04日(金) 14:23

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

投稿記事by reiko » 2016年10月26日(水) 16:18

yama様

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

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

ただ私はHTML5の仕様をきちんと理解しているわけではないので、もしかしたらダメな理由があるのかもしれません。
アバター
yama
管理人
記事: 2930
登録日時: 2009年7月29日(水) 02:50

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

投稿記事by yama » 2016年10月27日(木) 13:51

https://www.tinymce.com/docs/demo/format-html5/
http://codepen.io/tinymce/pen/dYwREe
実際に試してみたところ、TinyMCE4だと設定によっては使えるみたいです(MODX用のTinyMCE4は開発中です)
reiko
メンバー
メンバー
記事: 6
登録日時: 2016年3月04日(金) 14:23

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

投稿記事by reiko » 2016年10月28日(金) 14:40

TinyMCE4でできるというコメントを見てもう一度やってみたところ、
valid_childrenを設定したら<a>タグの中に<div>を入れられました!
調べ方が足りず申し訳ありませんでした。

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