这工作得很好:
<script type="text/javascript">
$(document).ready(function() {
$.fancybox({'href' : 'http://www.cnn.com','frameWidth':500,'frameHeight':500,'hideOnContentClick': false,'type':'iframe'});
});
</script>
也就是说,FancyBox 打开并显示 CNN 主页。但是,如果我将 href 属性更改为“#pg”
并以这种方式编码页面:
<body>
<div id="pg"></div>
<script type="text/javascript">
document.getElementById("pg").innerHTML = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\"><head><title></title></head><body>test me now</body></html>";
</script>
</body>
FancyBox 打开,但不显示任何文本。(文本“text me now”显示在#pg div 元素中。注意它被分配到页面末尾的 DIV 的 innerHTML。)
基本上,我想知道是否有一种方法可以动态初始化 DIV 的 innerHTML 属性并将其显示为 FancyBox 类型的 iFrame?(iFrame 的内容将有一个打印 iFrame 文档的按钮。)
TIA
更新:2012 年 7 月 28 日
正如@arttronics 建议的那样,我整理了一个jsFiddle
总而言之,最终目标是能够单击 FancyBox 中包含的按钮,该按钮打印 FancyBox 的全部内容,而无需打开另一个窗口。(我想使用 FancyBox 作为 Javascript 解析的内容的报告查看器。)
我假设我需要使用 FancyBox 的 iframe 播放器显示内容,但我可能错了。
jsFiddle 显示:
FancyBox 能够显示使用内联播放器验证为 HTML 页面的文本。文本可以通过href
或引用content
。
但是,当播放器为 aniframe
且内容来自 时href
,FancyBox 容器为空。如果内容来自content
属性,FancyBox 会显示 404 错误。
只需注释和取消注释 jsFiddle 代码即可了解我的意思。
任何关于如何实现我的目标的想法都会受到赞赏,并将获得支持!
TIA。
更新:2012 年 7 月 31 日
这个新的 jsFiddle 示例:Iframe 报告查看器可以工作,但不能在 FancyBox 中使用
如您所见,我尝试了几种方法来iframe
在 FancyBox 中显示。虽然 FancyBox 确实显示了 的内容iframe
,但打印功能中断了。
我认为解决此问题的一种方法是在加载后将 myContent var 的内容写入 FancyBox,但我无法 (A) 找到要写入的正确 DOM 节点,并且 (B) 我可以' t 让 FancyBoxiframe
在iframe
src="about:blank"
.
有什么建议么?或者您是否看到了修复 jsFiddle 示例的方法?