Javascript 无法更改Firefox 4/IE中的iFrame内容
我有以下代码:Javascript 无法更改Firefox 4/IE中的iFrame内容,javascript,iframe,Javascript,Iframe,我有以下代码: <html> <head> </head> <body> <script type="text/javascript"> var frame = document.createElement('iframe'); frame.id = 'myFrame'; document.getElementsByTagName('body')[0].appendChild(fr
<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>
var frame=document.createElement('iframe');
frame.id='myFrame';
document.getElementsByTagName('body')[0].appendChild(frame);
var context=frame.contentWindow.document;
context.body.innerHTML='testing';
这将创建一个简单的iframe,其中包含我的文本:“testing”
这在Chrome中非常有效,但是Firefox和IE正在呈现一个空的iframe
知道我做错了什么吗?一些浏览器明确禁止这样的事情,所以你不能,例如,在一个框架中加载某人的银行网站,并用Javascript与之交互。此链接: 表明空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的解释都不同,因此只需使用通用方法即可。这应该适用于所有浏览器
试试看。重写最后一行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>
var frame=document.createElement('iframe');
frame.id='myFrame';
document.getElementsByTagName('body')[0].appendChild(frame);
var context=frame.contentWindow.document;
context.write(“测试”);
JS fiddle在此确认它在IE、Chrome和Firefox中工作:
这与问题的本质还不太接近。我知道XSS的限制,但是iframe是在这个页面中创建的,我如何控制它的内容呢?它不应该受到限制,因为它是“同一来源”,对吗?一点也不,它是跨域引用,甚至不是特定于iframe的。您的问题源于使用了正确的javascript。第一个链接似乎讨论了Firefox中空
iframe
元素的问题,这听起来可能会影响您的示例。你检查过了吗?我在发帖前和阅读你的答案后都试过了(只是为了确定!)。这不是问题…TNC-新代码在不同浏览器中都能很好地工作。谢谢有没有机会介绍一下如何添加动态元素(比如创建脚本并将其放入脚本中)?我在这方面还有些麻烦…你能详细说明一下你想做什么吗?我不介意多给你点背景知识。