【发布时间】:2009-12-25 01:46:26
【问题描述】:
我有一个 div,它包含在来自外部 html 的 iframe 中
<iframe src="test.html">
基于 html 的“上下文菜单”需要位于 iframe 之上,但上下文菜单的 html 代码位于 iframe 本身中。首选纯 CSS 解决方案。
【问题讨论】:
我有一个 div,它包含在来自外部 html 的 iframe 中
<iframe src="test.html">
基于 html 的“上下文菜单”需要位于 iframe 之上,但上下文菜单的 html 代码位于 iframe 本身中。首选纯 CSS 解决方案。
【问题讨论】:
iframe 的内容不能显示在 iframe 之外。在 iframe 中,您可以使用“位置:绝对”和“z-index:1000”(或另一个适当的大数字)让 div 出现在其他元素上。请注意,绝对定位的元素将从文档流中删除。可以使用“top”、“left”、“right”和“bottom” CSS 属性设置位置。
【讨论】:
只要两个框架在同一个域中,您就可以使用 Javascript 将 DOM 元素移动到父框架 (window.parent.document.appendChild(...))。我已经做到了,并且有效。这只是很麻烦,您必须自己决定是否值得。
请务必查看 bobince 对以下问题的评论,了解如何操作。
不要忘记,一旦将子框架的样式表移到父框架,它就不会应用于菜单。
【讨论】:
document.importNode 从 iframe 的文档中获取节点。不幸的是,这种方法在 IE 中不受支持……虽然写一个回退函数到 createElement、createTextNode 等来复制另一个文档的节点并不是太棘手。
您确实复制了典型的“Ajax”功能,因为它已经被许多框架(如 jQuery)抽象出来,而且您不太可能做得更好,我会试一试。不要重新发明轮子。
您可以找到great example here。
$("#links").load("/Main_Page #jq-p-Getting-Started li");
【讨论】: