アイコン エンジニア婦人ノート | PHPなどのプログラミングをするときの困った!を助ける情報サイト

trumbowygでsciprtタグを入れる方法

2022/7/4 12:13

先日、梅子CMSで本文中にscriptタグがある記事を再編集するときに表示が崩れる問題を修正しました。

梅子CMSはtrumbowygを使用しています。

問題はscriptタグを含む本文情報をデータベースに保存して再度編集するときに発生していました。

本来、不特定多数が入力するフォームではscriptタグを利用できないように制限することが一般的です。
しかし、梅子はCMSでアフィリエイトを使用する場合もあることを想定しています。
アフィリエイトタグ自体がscriptタグを使用しているものが多くあるため、この問題を見過ごすことはできませんでした。

PR

問題

scriptタグを含んだ状態でviewモード(リッチエディタ状態)になると、scriptタグを実行した状態のものが表示されます。

この状態でHTMLソースの切替を行ったり、付近の修正を行うとソースの崩れが発生します。

原因

scriptタグの実行した状態の物をHTMLソースモードに変換するためです。scriptタグ実行前は存在しなかったタグを含めて変換してしまうため、おかしなことになってしまいます。

対応方法

本文中にscriptタグを含む場合、デフォルトでHTMLソースモードになるようにします。

手順は以下の通りです。

  1. データベースから読み込まれたHTMLソース情報を取得
  2. 取得したHTMLソースの中にscriptタグが含まれるとき、「view-HTML」のボタンを押下させる
  3. エディタ内を空にする
  4. 取得していたHTMLソース情報をエディタに貼り付ける
var contents = $('#trumbowyg-editor').trumbowyg('html')
// scriptタグが含まれるとき、デフォルトでソースモードにする
if(contents.match(/
    

関連記事