Colorbox 提供了将 iframe 作为其内容加载的特定方法,当这种颜色框弹出窗口关闭时,父页面根本不会重新加载或刷新。
但是,在我的用例中,我需要在打开的颜色框内附加/添加自定义 iframe 元素,而不交换颜色框内容。已经打开的颜色框内容纯粹是内联 HTML - 不存在任何 iframe。这个新的自定义 iframe 的内容是一个 ajaxified 评论表单,只有在作为自己的页面加载时才有效 - 或者在完全限定的 iframe 元素中。
iframe
当单击颜色框内容中的链接时,我的函数会添加以下内容:
$('#cboxLoadedContent').append('<IFRAME frameborder="0" src="'+url+'" id="loadednode">');
现在我可以让它工作没有问题 -IFRAME
被插入并对其内容进行正常加载过程并完美显示所有内容。
唯一的问题是,一旦我通过使用关闭按钮或单击覆盖单击此加载的颜色框的“退出”,与退出颜色框原生 iframe 内容不同,父/首页突然重新加载!
我该如何防止这种情况发生?是什么让 colorbox-native iframe 在删除时避免页面刷新,但我添加到 colorbox 内容的 iframe 会导致父页面在删除时重新加载?
作为参考,我可以将作为 iframe 内容的页面加载为 colorbox-native iframe,退出时不会导致页面重新加载,因此无论哪种情况,问题都不在于 iframe 的内容 - 它必须be in the way colorbox 删除了 colorbox 处理的 iframe 与非 colorbox 处理的 iframe。
一些猜测:
- 没有“name”属性或没有固定的“id”属性会导致问题吗?
- 如果 iframe 包含在没有“src”属性的初始内联 HTML 中,但是在单击时它会获得“src”路径,这会避免这些问题吗?
- 有没有另一种说法“在我正在查看的颜色框中加载这个 iframe 而不会删除已经存在的 HTML 内容”?
我正在使用(旧版本,因为 Drupal 6 与新版本不兼容):
- jQuery 1.3.2
- 彩盒 v1.3.18.1 ( http://www.jacklmoore.com/colorbox/ )