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

时间:2017-03-10 15:51:43

标签: javascript angularjs node.js iframe html-object

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

&#xA;&#xA;
 &lt; iframe id =“myiframe”ng-src = “{{src}}”&gt;&lt; / iframe&gt;&#xA;  
&#xA;&#xA;

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

&#xA;&#xA;

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

&#xA;&# xA;

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

&#xA;&#xA;

编辑1:我也对 index的解决方案持开放态度。 html 可以将值发送到服务器或创建具有该值的文件,只要全局模板可以在以后获取它。另外,正如我在评论中提到的, iframe 的目的是实时预览文件夹,有其他方式(例如,使用&lt; object&gt; ),有谁知道哪种方式可以让我获得一个内部价值吗?

&#xA;&#xA;

编辑2:我做了一个带有iframe的plunker 带有物体的掠夺者 $ output &lt; script&gt; var $ output =”Default“&lt; / script&gt; 定义/tmp/indexOutput.html“rel =”nofollow noreferrer“> indexOutput.html 。我的目标是获得这个价值。

&#xA;&#xA;

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

&#xA;

1 个答案:

答案 0 :(得分:2)

您可以使用iframe调用的window.parent.someFunction在root和iframe之间进行通信。 你必须在root中创建一个函数,它可以重新获得一个参数并重新设置它自己。

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


并从通过参数ouput

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

请参阅https://stackoverflow.com/a/2161402/7349445