将整个文档移动到iframe中
Move the whole document into an iframe
我想做的是将一个完整的网站包装在iframe
中,而不破坏任何样式或javascript。
这就是我尝试过的:
var $frame = $('<iframe />').css({
position: 'fixed',
top: 0,
left: 0,
width: '100%',
height: '100%'
}).appendTo('body');
$('head').children().appendTo($frame.contents().find('head'));
$('body').children().not($frame).appendTo($frame.contents().find('body'));
请参阅http://jsfiddle.net/gUJWU/3/
这在Chrome中运行良好。
Firefox似乎吞噬了整个页面。
Internet Explorer(请参阅http://jsfiddle.net/gUJWU/3/show/)确实创建了iframe
,没有向其中移动任何内容。
这种方法有可能跨浏览器工作吗?
在IE中,文档不是推断和自动创建的,因此您需要在访问它之前实际创建它:
var $frame = $('<iframe />').css({
position: 'fixed',
top: 0,
left: 0,
width: '100%',
height: '100%'
}).appendTo('body');
var doc = $frame[0].contentDocument || $frame[0].contentWindow.document;
doc.open();
doc.write("<!DOCTYPE html><html><head><title></title></head><body></body></html>");
doc.close();
$('head').children().appendTo($frame.contents().find('head'));
$('body').children().not($frame).appendTo($frame.contents().find('body'));
演示:http://jsfiddle.net/XAMTc/show/
这似乎适用于IE8/9,以及最近的Firefox和Chrome。
我解决问题的方法是通过console.log
对IE中为0的$frame.contents().find('head').length
进行更新。
相关文章:
- 当#在iFrame中使用HTML时,阻止页面移动
- 如何让iframe在设置负上边距后填充整个移动网页
- Iframe|youtube Iframe上的移动后退按钮
- 在移动应用程序上滚动iframe会在某个时刻跳到页面顶部
- 如何检测Facebook Javascript SDK'的移动iframe
- 阻止iframe加载到移动设备上
- 移动设备上的 iFrame 重定向主页问题
- 需要 iFrame 在滚动页面的其他部分时不移动
- 将整个文稿移动到 iframe 中
- 强制 iFrame 作为移动设备
- 如何在单击 iframe 中的按钮后将整个浏览器窗口移动到另一个页面
- YouTube 360 视频 iframe 在移动浏览器中不起作用
- 移动版 Chrome 上的 IFrame 播放器 API
- iframe关于光标移动问题的设计模式
- 使用jquery在dom中移动嵌入的youtube iframe会导致全屏无法在Windows8 IE10中工作
- 将整个文档移动到iframe中
- 如何在通过iFrame提交表单后更改当前url以移动到其原始url
- 在移动safari中按下后退按钮后,Javascript将停止在iframe中执行
- 如何检测iframe是否已从一个URL移动到另一个URL
- 修复了移动应用程序iframe中的底部页脚