【问题标题】:How to dynamically resize iframe height in angularjs?如何在angularjs中动态调整iframe高度?
【发布时间】:2015-10-26 11:38:57
【问题描述】:

我创建了以下函数来将 iframe 元素的高度在加载后始终调整为 100%

app.directive('iframeAutoSize', [function() {
    return {
        restrict: 'A',
        link: function(scope, element, attrs) {
            element.on('load', function() {
                console.log(element[0]);
                var iFrameHeight = element[0].contentWindow.document.body.scrollHeight + 'px';
                element.css('height', iFrameHeight);
            });
        }
}}]);

用法:

<iframe iframe-auto-size src="..." />

问题:启动时出现以下错误:

Error: Permission denied to access property "document".

显然不允许在 iframe 元素上执行window.document。但是我怎么才能知道高度呢?

我更喜欢没有 jquery 的普通 angular/js 解决方案。

【问题讨论】:

  • 访问该 iframe 的唯一方法是控制父域和 iframe 域中的代码
  • 好的,所以我认为没有现有的解决方案可以嵌入外部页面并将组件调整到最大高度?
  • 如果你可以控制 iframe 代码
  • @charlietfl 是的,我控制 iframe 组件,但不是要在 iframe 中加载的内容,

标签: javascript css angularjs iframe


【解决方案1】:

这不是 AngularJS 错误,这是 SOP Error,iFrame 可能是沙盒!

iFrame 来自不同的域??

【讨论】:

  • 是的,要嵌入 iframe 的内容来自不同的域。有没有可能克服这个错误?
  • 您可能不会认为这是错误,这就是 SOP 的工作原理!您对此内容无能为力,因为这不是您的内容!阅读我之前发布的链接,但我认为您不会找到任何解决方法!这是安全性:)
猜你喜欢
  • 2018-03-23
  • 2011-11-25
  • 1970-01-01
  • 1970-01-01
  • 2012-02-27
  • 1970-01-01
  • 2011-08-22
  • 2021-06-15
  • 2012-07-29
相关资源
最近更新 更多