我正在尝试将 HTML 代码放入框架中。
我用过的框架外:document.write
进入?
框架是:
var frameTwitter = document.getElementById('FrameTwitter');
我正在尝试将 HTML 代码放入框架中。
我用过的框架外:document.write
进入?
框架是:
var frameTwitter = document.getElementById('FrameTwitter');
为了写入 iFrame,您需要获取它的contentWindow
or contentDocument
。
var frameTwitter = document.getElementById('FrameTwitter'),
frameDocument = frameTwitter.contentWindow || frameTwitter.contentDocument;
frameDocument = frameDocument.document || frameDocument;
frameDocument.write('<p>Hello World!</p>');
演示:http: //jsfiddle.net/NTICompass/8Ekrs/1/
更新:您还可以使用window.frames
来获取 iFrame 的window
对象。
var frameDocument = window.frames.FrameTwitter.document;
frameDocument.write('<p>Hello World!</p>');
演示:http: //jsfiddle.net/NTICompass/8Ekrs/2/
由于您使用的是同一域中的 2 个文件,因此应该可以。在 上使用相对路径可能是理想的,iframe
因为您必须匹配域、协议和端口,否则这将停止工作。
主页.html
<iframe src="Frame.html" id="FrameTwitter"></iframe>
<script type="text/javascript">
var frame = document.getElementById('FrameTwitter');
frame.writeInto('Some text here');
</script>
框架.html
<script type="text/javascript">
function writeInto(str) {
document.writeln(str);
}
</script>
这样你就可以Frame.html
在文件中设置你需要的功能,在那里测试功能,而不用担心跨框架开发。然后,一旦设置了您的功能,您就可以从父级触发它们。
您必须使用 postmessage API 请参阅https://developer.mozilla.org/en-US/docs/DOM/window.postMessage
火箭危险品也是正确的
通常,只有当且仅当执行它们的页面位于具有相同协议(通常都是 http)、端口号(http 的默认值为 80)和主机(模document.domain 被两个页面设置为相同的值)