我有以下代码:
<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>
这会创建一个包含我的文本的简单iframe:'testing'。
这在Chrome中非常有效,但Firefox和IE正在呈现空的iframe。
知道我做错了吗?
答案 0 :(得分:2)
您可以这样做:
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的解释都不同,因此只需使用通用方法即可。这应适用于所有浏览器。
试一试。
答案 1 :(得分:1)
某些浏览器明确禁止此类内容,因此您无法例如在框架中加载某人的银行网站并在Javascript中与其进行交互。这个链接:
建议如何初始化空iframe有一些错误,这个错误:
http://www.iframehtml.com/iframe-security.html
有一些资源可以解决这些问题。
答案 2 :(得分:0)
重写了最后一行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小提琴确认它在IE,Chrome和Firefox中工作: