frameset でフレーム分割が行われているページでは frameset 自体が body のような扱いになり、 frameset の後に div タグなどを置いてもブラウザ側で無視されてしまいます。
そのためHTMLに一括で記述しておいてもモーダルは出せないのですが、ブラウザ側でDOM出力後にJavaScriptで追記すればOKです。
<script type="text/javascript"> $(function() { var modalHTML = '<div class="modal">モーダル</div>' $('html').append(modal); }); </script>
モダンブラウザは当然対応。IEは8以降から対応してます。