(iframe は必要ありません。iframe をロードするたびに、明らかにロードほど良くありません。キャッシュされている場合でも、大量の初期化が必要です。また、内部でダイアログを表示するのは非常に困難です。 iframe の外側にある場合、同じダイアログが複数のページに表示されます)
过去多啦不再A梦2017-05-15 16:51:51
3 つのオプションがあります:
何らかの命名規則を使用して、ID を競合しない形式に変更します。この解決策は被験者の要件に最も合致していないように見えますが、後の段階で多くの問題が軽減されるため、個人的にはこれをお勧めします。これらの HTML が論理的に同じインターフェイス上にある場合は、異なる ID を持つ必要があります。そうしないと、将来ロジックとスタイルを記述するときに問題が発生します。
タブの HTML のみに ID の競合があり、同時に表示されるタブが 1 つだけであると仮定すると、タブを切り取るたびに表示されていないタブを DOM から切り離し、必要に応じて追加することを検討できます。 。
<iframe src="about:blank"></iframe>
の contentWindow
を設定して、<iframe src="about:blank"></iframe>
を使用します。 document.body.innerHTML はそのコンテンツを変更できます。それでも HTML の外部スタイルやスクリプト、さまざまなダイアログをうまく表示できるようにしたい場合は、さまざまなハック方法を使用することもできますが、それでもトラブルの絶えないハックです。 <iframe src="about:blank"></iframe>
来显示 html,通过设置 <iframe>
的 contentWindow.document.body.innerHTML
可以修改它的内容。如果还希望能很好的显示 html 的外带样式和脚本,还有各种 dialog,也可以有各种 hack 的方法,但总归是个 hack,后患无穷。
P.S. 应题主要求,补充一些 hack 的思路。
可以通过下面代码覆盖 dialog 的默认选项,其中关键的是 appendTo
追伸 トピック所有者のリクエストに応じて、ハックのアイデアをいくつか追加します。
🎜 🎜 jQuery UI のダイアログをデフォルトで指定された場所に挿入させるにはどうすればよいですか? 🎜 🎜次のコードを使用してダイアログのデフォルトのオプションをオーバーライドできます。重要なオプションはappendTo
オプションです。 🎜
リーリー
🎜このオプションはタブをロードする前またはタブを切り替えた後に毎回設定し、現在表示されているタブノードに設定します。 🎜