追記: APEX 23.1よりリッチ・テキスト・エディタはCKEditor5からTinyMCEへ置き換えられます。CKEditor5のカスタマイズ方法はTinyMCEには適用できません。
----
Oracle APEX 20.2よりリッチ・テキスト・エディタがCKEditor5に変わりました。それに伴いHTMLの直接編集機能が無くなっています。
これ自体はクロスサイト・スクリプティングの脆弱性を回避する観点から、良いことなのですが、リンク(Aタグ)をつけた時に別ウィンドウで開けなくなった、HTMLを編集できないからtarget属性を付けることができない、どうすればいい?という質問がありました。
CKEditor5については、FOEX GmbHのStefan Dobreの良い記事 A closer look at the Rich Text Editor of #orclAPEX 20.2 というのがあり、それを参照しながら、対応を実装してみました。
以下のJavaScriptをJavaScript初期化コードに記述して、CKEditor5のオプションを設定すると、target="_blank" rel="noopener noreferrer"がAタグの属性として付加されます。
function(options) { options.editorOptions.link = { addTargetToExternalLinks: true }; return options; }
ページ・アイテムP1_TEXTがリッチ・テキスト・エディタです。
これで対応が完了です。確認のために1ページだけのアプリケーションを作りました。
CKEditor5も大量のAPIがあって色々なことができるようです。時間を見つけて機能を確認したいコンポーネントのひとつです。
完