Microsoft Edge 157は11月5日に、文書へHTMLを後から入れる方法を一組のAPIにまとめた。同じ項目は、11月3日に安定版となったChrome 157のリリースノートにも載っている。
位置を取るメソッドはHTML文字列を受け取り、insertAdjacentHTML() を置き換える。名前は beforeHTML()、afterHTML()、appendHTML()、prependHTML()、replaceWithHTML() と、それぞれのUnsafe版だ。ストリーム版は WritableStream を返し、書き込んだテキストをHTMLとして解析する。streamHTML() に加え、append、prepend、replaceWith、before、afterと、それぞれのUnsafe版がある。
Unsafeの挿入とストリームでは、runScripts をtrueにすると createContextualFragment() と同様にスクリプトを実行できる。Trusted Typesは、スクリプト実行のモードとサニタイザを上書きできる。従来は部分更新、サニタイズ、スクリプト実行、ストリームが別APIで、Microsoftは誤ると問題になると説明している。
同じ版のSanitizer APIには javascriptURLs と setJavascriptURLs() が加わり、javascript: で始まる遷移URLを外すかを明示できる。オプションを使わなければ挙動は従来どおりで、setHTML() などの安全側は常に除去し、setHTMLUnsafe() などの危険側は常に残していた。今後はその選択をどのメソッドにも渡せる。
サーバーから部分HTMLを流し込む処理は、Unsafeと runScripts を確認してから移す。信頼できない断片にUnsafeを使わない。危険側でも javascript: URLを外したいときだけ、新しいオプションを付ける。