84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
(不用ifame哦,iframe每次加载明显不如load,即便是缓存,也要初始化很多的,而且iframe内部带的dialog要在iframe外显示也很费劲,多个页面有同样的dialog也会出现这种问题)
业精于勤,荒于嬉;行成于思,毁于随。
有三种方案:
用某种命名规范把 id 修改成互不冲突的形式。虽然这个解决方案看起来最不符合题主的要求,但是个人最推荐这么做,会减少后期的不少麻烦。如果这些 html 逻辑上是在同一个界面上的,那么它们就本该具有不同的 id,要不以后写逻辑和样式的时候都会遇到麻烦。
假设只是 tab 的 html 会有 id 冲突,且同时显示的 tab 只有一个,那么可以考虑每次切 tab 的时候都把没显示的 tab 从 DOM 里面 detach,当需要的时候再 append。
使用 <iframe src="about:blank"></iframe> 来显示 html,通过设置 <iframe> 的 contentWindow.document.body.innerHTML 可以修改它的内容。如果还希望能很好的显示 html 的外带样式和脚本,还有各种 dialog,也可以有各种 hack 的方法,但总归是个 hack,后患无穷。
<iframe src="about:blank"></iframe>
<iframe>
contentWindow.document.body.innerHTML
P.S. 应题主要求,补充一些 hack 的思路。
可以通过下面代码覆盖 dialog 的默认选项,其中关键的是 appendTo 这个选项。
appendTo
$.extend($.ui.dialog.prototype.options, { appendTo: tabNode });
每次加载 tab 前、切换 tab 后的时候都把这个选项设置一下,设置成当前显示的这个 tab node。
有三种方案:
用某种命名规范把 id 修改成互不冲突的形式。虽然这个解决方案看起来最不符合题主的要求,但是个人最推荐这么做,会减少后期的不少麻烦。如果这些 html 逻辑上是在同一个界面上的,那么它们就本该具有不同的 id,要不以后写逻辑和样式的时候都会遇到麻烦。
假设只是 tab 的 html 会有 id 冲突,且同时显示的 tab 只有一个,那么可以考虑每次切 tab 的时候都把没显示的 tab 从 DOM 里面 detach,当需要的时候再 append。
使用
<iframe src="about:blank"></iframe>
来显示 html,通过设置<iframe>
的contentWindow.document.body.innerHTML
可以修改它的内容。如果还希望能很好的显示 html 的外带样式和脚本,还有各种 dialog,也可以有各种 hack 的方法,但总归是个 hack,后患无穷。P.S. 应题主要求,补充一些 hack 的思路。
可以通过下面代码覆盖 dialog 的默认选项,其中关键的是
appendTo
这个选项。每次加载 tab 前、切换 tab 后的时候都把这个选项设置一下,设置成当前显示的这个 tab node。