【发布时间】:2013-09-17 18:03:07
【问题描述】:
我有一个 iframe 拉入图像和一些数据行(跨域)。 iframe 是使用嵌入的 javascript 文件创建的,如下所示:
<script type="text/javascript" src="http://www.domain.com/blah/scriptfile.js?blah_id=001" id="blah_script"></script>
正在创建 iframe,它正在完美地加载图像和数据......到目前为止,一切都很好。
在 iframe 内,我想隐藏数据行并缩短 iframe [-] 的高度,当单击图像时 [+] 扩展 iframe 的高度并取消隐藏行。我将行放在一个 .
下面是被调用 onclick 的函数的缩减版本(它正在被调用)。函数的第一行显示了我是如何生成 szFrameName 的,$folder_id 是 001,这反映在 szSpanName 中。当 alert() 被调用时,它显示:“blah_iframe_001 blah_cmpnt_001”,所以名称是正确的,但是 document.getElementById 在 blah_iframe 上返回 null,但在 blah_cmpnt_ 上工作正常_
function onclickToggle()
{
var szFrameName = 'blah_iframe_' +"<?php echo $folder_id; ?>";
var szSpanName = "blah_cmpnt_" +"001";
var idFrame = document.getElementById(szFrameName);
var idCmpnt = document.getElementById(szSpanName);
alert(szFrameName +" " +szSpanName);
}
我已经尝试过 window.frameElement,但这会产生“拒绝访问”错误,那么如何调整 iframe 的大小/缩短?
【问题讨论】:
-
由于跨域安全限制,一般不允许您从外部操作跨域 iframe 的内容。你控制这两个域吗?如果没有,你可能不走运。
-
没有。我控制创建 iframe 的 js 的来源,并控制 iframe 窗口的内容,但这些可以出现在任何域上(例如创建谷歌广告的 js)。我正在玩 window.postmessage,但我没有得到任何地方......
-
嗯。在这种情况下,可能有一种解决方法,但我不知道该怎么做。
标签: javascript html iframe resize