変数を表示する HTML/CSS MessageBox を作成する関数があります (既に PHP json_encode() でエスケープされており、XSS インジェクションは不可能です)。この変数をハードコーディングされたメッセージに表示したいのですが、常に同じメッセージです。メッセージは、HTML 太字タグの間に次の変数を表示します<b></b>
。
Message("Do you really want to delete <b>" + reference + "</b> ?");
Message() 関数に渡される文字列は div タグに追加されます。変数参照を太字で表示したい場合は、innerHTML を使用するしかありません。
多くの人が、「正規化されていない innerHTML を使用しないでください」、「Microsoft 独自の関数です。W3C ではなく、サポートされなくなる可能性があります」と言います。
私は常にDOMメソッドを使用してきましたが、私の場合、文字列がテキストのみとして表示されるため、DOM1 myDiv.firstChild.nodeValue プロパティまたはDOM3 myDiv.textContent メソッドでさえ機能しません。
innerHTML メソッドには<>
、HTML エンティティで文字をエスケープしないという利点がありますが、残念ながら DOM メソッドでは同じ結果を得ることはできないと思います。
document.createElement("b") メソッドを使用できません。Message() 関数で完全なスタイル付き文字列を 1 つのパラメーターとして取得する必要があるため、すべてが複雑になります。
だから私の考えでは、物事を複雑にするのではなく、場合によっては innerHTML を使用する必要があり、使用方法によっては悪い習慣ではありません。
コメントをお待ちしております。