无法在Firefox 4/IE中更改iFrame内容
Cannot change iFrame content in Firefox 4/IE
我有以下代码:
<html>
<head>
</head>
<body>
<script type="text/javascript">
var frame = document.createElement('iframe');
frame.id = 'myFrame';
document.getElementsByTagName('body')[0].appendChild(frame);
var context = frame.contentWindow.document;
context.body.innerHTML = 'testing';
</script>
</body>
</html>
这将创建一个包含我的文本:'testing'的简单iframe。
这在Chrome中工作完美,但Firefox和IE呈现一个空的iframe。
知道我做错了什么吗?
你可以这样做:
var frame = document.createElement('iframe');
frame.id = 'myFrame';
document.getElementsByTagName('body')[0].appendChild(frame);
frame = (frame.contentWindow) ? frame.contentWindow : (frame.contentDocument.document) ? frame.contentDocument.document : frame.contentDocument;
frame.document.open();
frame.document.write('testing');
frame.document.close();
所有浏览器对Javascript的解释都不一样,所以只需使用通用方法即可。这应该可以在所有浏览器中工作。
试试吧
一些浏览器明确阻止这样的事情,所以你不能,例如,加载某人的银行网站在一个框架,并在Javascript与之交互。这个链接:
http://spyder.wordpress.com/2006/05/31/hacking-around-firefox-security-in-order-to-actually-accomplish-something/提示如何初始化空iframe有一些错误,下面这个:
http://www.iframehtml.com/iframe-security.html有一些关于如何处理它们的资源
重写了最后一行innerHTML似乎只是chrome的东西。
<script type="text/javascript">
var frame = document.createElement('iframe');
frame.id = 'myFrame';
document.getElementsByTagName('body')[0].appendChild(frame);
var context = frame.contentWindow.document;
context.write('testing');
</script>
JS fiddle在这里确认它在IE, Chrome和Firefox中工作:
http://jsfiddle.net/thebeebs/mDMaj/相关文章:
- 获取iframe内容的宽度-高度
- 使用Javascript(或jQuery)加载iframe内容
- 动态(重新)创建iframe内容不会重置Chrome中的JS对象
- 将 iframe 内容传输到新的空 iframe
- 如何运行在加载时操作 iframe 内容的代码
- 如何根据 iframe 的大小调整 iframe 内容的大小
- 打印iframe内容
- Internet Explorer:可以't访问IFrame内容,除非状态代码为200
- 如何创建iframe内容的书签
- 从父窗口上的iFrame内容中关闭iFrame
- iFrame内容在盲效后丢失
- 如何在angular js中使用滚动条打印iframe内容
- iframe内容可编辑,位于jqueryUI可排序列表项中
- 当Iframe内容从按钮更改时,动态更改标头名称
- iframe内容加载后触发js函数
- 如何按时间间隔重新加载Iframe内容,使其不会闪烁
- Javascript 打印多个网页 iFrame 内容(全部打印按钮)
- 无法获取 iframe 内容
- 根据链接显示 iframe 内容
- 单击按钮时重新加载 iframe 内容(本地 HTML)