问题是,我有<iframe>
动态更改内容。我无法找到任何其他方式动态更改<iframe>
元素的高度,而不是每次通过parent.postMessage
更改为博客网站时发送新高度。解决方案有效(也许它可以帮助其他人,但问题是我不确定我是否以安全的方式完成了它。
我只是想问一下以这种方式使用window.parent.postMessage('Some message', '*')
是否安全?
嵌入式网站:
<script type="text/javascript">
var framesHeight = 0;
setInterval(function(){
var newFramesHeight = window.document.getElementsByTagName('html')[0].offsetHeight;
if (newFramesHeight !== framesHeight) {
window.parent.postMessage(newFramesHeight, '*');
framesHeight = newFramesHeight;
}
}, 500);
</script>
如您所见,每当高度发生变化时,我都会发送一条新消息。
在博主网站上我想嵌入这个:
<script>
window.addEventListener('message', function (evt) {
if (evt.origin === 'http://mypage.com' && !isNaN(evt.data)) {
document.getElementById('embedID').style.height = evt.data+'px';
}
}, false);
</script>
<iframe id="embedID" src="http://mypage.com/embed/11" frameborder="0" style="width: 100%; height: 100%;" scrolling="no"></iframe>