从 <iframe> 或 <object> 中获取变量的值

Get the value of a variable out of <iframe> or <object>

在我的全局 html 模板中,我嵌入了一个 iframe,它可以实时预览 {{src}}(例如,src 可以是 public/tmp/bDCZ5rynnpLaYNEuAAAj/index.html ).

<iframe id="myiframe" ng-src="{{src}}"></iframe>

index.html是我服务器写的文件;我可以控制代码并且可以修改它。 index.html 包含 JavaScript 代码,它的设计使其始终具有内部变量 $output.

我的问题是,如何从 iframe 中获取 $output 的值并让全局 html 页面知道该值。

有谁知道如何做到这一点?

编辑 1: 我也愿意接受 index.html 可以将值发送到服务器或创建具有该值的文件的解决方案,只要全局模板可以稍后获取。此外,正如我在评论中提到的那样,iframe 的目的是实时预览一个文件夹,有 可以这样做(例如,使用 <object>),有人知道吗哪种方式可以让我得到一个内部值?

编辑2:我做了一个plunker with iframe and a plunker with object. $output is defined by <script>var $output="Default"</script> in indexOutput.html。我的目标是把这个值弄出来。

编辑 3: 我刚刚意识到 @Roy 在他的回答中建议的 window.parent._resetter 有效。但有一点是,_resetter 函数必须在 html 页面的脚本中定义。有谁知道如何将此值传递给我的控制器?这里是 a plunker, and a plunker with $window.

您可以通过从 iframe 调用 window.parent.someFunction 在 root 和 iframe 之间进行通信。 您必须在 root 中创建一个函数,该函数接收一个参数并重新 setter 给它自己。

function _resetter(param){
  var paramRoot = param;
}


并从传递参数 ouput

的 iframe 调用此函数
window.parent._resetter(param);