Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调整跨域iframe的大小_Javascript_Iframe - Fatal编程技术网

Javascript 调整跨域iframe的大小

Javascript 调整跨域iframe的大小,javascript,iframe,Javascript,Iframe,我听说可以从父级轮询iframe的url以获取哈希,从而对其进行处理。我需要做的是动态设置跨域iframe的高度。因此,每当高度发生变化时,iframe都会将其url设置为someurl#height。现在我需要从父级访问哈希(#height),但它仍然不允许我访问。在这种情况下,使用代理(在iframe中使用iframe)不是一个选项。也许我做错了什么,你会如何轮询iframe的url iframe.contentWindow.location.href-安全警报 iframe.src-返回不

我听说可以从父级轮询iframe的url以获取哈希,从而对其进行处理。我需要做的是动态设置跨域iframe的高度。因此,每当高度发生变化时,iframe都会将其url设置为someurl#height。现在我需要从父级访问哈希(#height),但它仍然不允许我访问。在这种情况下,使用代理(在iframe中使用iframe)不是一个选项。也许我做错了什么,你会如何轮询iframe的url

iframe.contentWindow.location.href-安全警报
iframe.src-返回不带散列的url,通常不会这样做。应该做的是iframe调用
window.parent.location=“#”,将父级设置为具有iframe高度的哈希值

父页面使用事件(即Firefox)捕获更改,然后设置iframe的高度,或者使用计时器每隔100ms左右检查哈希值。至少谷歌CSE是这样做的

另请参见我对类似问题的回答:


这通常不是这样做的。应该做的是iframe调用
window.parent.location=“#”,将父级设置为具有iframe高度的哈希值

父页面使用事件(即Firefox)捕获更改,然后设置iframe的高度,或者使用计时器每隔100ms左右检查哈希值。至少谷歌CSE是这样做的

另请参见我对类似问题的回答:


您可以使用跨域策略文件,还是不知道iframe将访问哪个域?这可能会很好地解决问题[[1]:您可以使用跨域策略文件,还是不知道iframe将访问哪个域?这可能会很好地解决问题[[1]:但是如果父对象在另一个域上,iframe是否能够访问window.parent?这不是同一个安全问题吗?我刚刚检查过,您的解决方案确实有效,但是…您如何能够做到这一点?为什么这不是安全冲突?@Marius:您只是更改父页面位置,您没有访问任何数据或任何东西,这是错误的不是真正的安全问题。它可能被认为是可用性问题(未经同意更改父页面等),但事实上,它起作用的原因是为了避免安全问题;如果站点不想被框架化,这就是如何避免被框架化的——它们只是设置
top.location=window.location;
。一些属性不受跨域策略的约束。
location
就是其中之一。谢谢。不幸的是,此解决方案仅适用于Opera.Firefox和IE疯了!IE重定向到iframe的url和Firefox…哇,我甚至不知道它是做什么的;]我怎么解决这个问题呢(但是如果父项位于另一个域上,iframe是否能够访问window.parent?这不是同一个安全问题吗?我刚刚检查过,您的解决方案确实有效,但是…您如何能够做到这一点?为什么这不是安全冲突?@Marius:您只是更改父项页面位置,您没有访问任何数据或任何东西,这是错误的。)不是真正的安全问题。它可能被认为是可用性问题(未经同意更改父页面等),但事实上,它起作用的原因是为了避免安全问题;如果站点不想被框架化,这就是如何避免被框架化的——它们只是设置
top.location=window.location;
。一些属性不受跨域策略的约束。
location
就是其中之一。谢谢。不幸的是,此解决方案仅适用于Opera.Firefox和IE疯了!IE重定向到iframe的url和Firefox…哇,我甚至不知道它是做什么的;]我怎么解决这个问题呢(