私は自分のリッチテキスト/wysiwygエディターを作成する際に<div>
vsを使用することの長所と短所を比較検討しようとしています。<iframe>
そうすることで、なぜ私はcontenteditable <div>
を使用できないのですか、そしてなぜそんなに多くの人々が<iframe>
?
背景の説明:私が理解しているようにwysiwygエディターを作成する一般的な方法は、divまたはiframeをコンテンツ編集可能にしてから、 divexecCommand
またはiframe本体を含むドキュメントでテキストを太字にすることです。
HTMLは次のとおりです。
<html><!--parent doc-->
<body><button type="button" class="btn-bold">Bold</button>
<div contenteditable="true"></div>
</body>
</html>
対:
<html><!--parent doc-->
<body><button type="button" class="btn-bold">Bold</button>
<iframe>
<body contenteditable="true"></body>
</iframe>
</body>
</html>
とJS:
$(document.body).on('click', '.btn-bold', function(){
document.execCommand('bold', false, null);
});
対:
$(document.body).on('click', '.btn-bold', function(){
window.frames[0].document.body.execCommand('bold', false, null);
});
ほとんどのよくできたリッチテキストエディタはiframeを使用しているようです。このcontenteditable /execCommand
コンボをWebkitブラウザーのdiv/iframeで簡単に機能させることができますが、Firefoxでiframeを機能させるのに苦労しています。スクリプトとスタイルシートをiframeにロードすることに頼らなければならず、divベースのバージョンで簡単に達成できることを複製するためにあらゆる種類のナンセンスがあります。したがって、<div>
ベースの方法が望ましいようです。私が再考する強い理由はありますか?