0

我有一个 iFrame,它的内容位于不同的域中,我也可以控制。我喜欢将机密数据从父级传递到 iFrame。因此,我不想通过查询字符串或 URL 传递它。我喜欢通过表单隐藏输入字段传递它。如果字段的值是文本,它会起作用。但是,如果我使用 AngularJS 变量作为字段的值,它就不起作用。

下面是我的代码。

    {{session.user.user_ID}} and {{i18n.domain}} works in this HTML file and writes the correct values to the webpage.
    <form id="form_frame" action="http://other.mydomain.com/forIframe.php" method="post" target="output_frame">
        <input type="hidden" value="{{session.user.user_ID}}" name="id" />
        <input type="hidden" value="{{i18n.domain}}" name="domain" />
    </form>
    <iframe name="output_frame" width="400" height="400">
    </iframe>
    <script language="JavaScript" type="text/javascript"> 
        document.getElementById("form_frame").submit(); // automatically submit the form
    </script>

我的 forIframe.php 文件中有这个,该文件是为 iFrame 编写内容的文件:

echo 'user ID is: '.$_POST['id'];

但是,上面写道:

user ID is: {{session.user.user_ID}}

为什么这个 AngularJS 变量不能正确解析为输入字段的 value 属性?如何将 {{session.user.user_ID}} 和 {{i18n.domain}} 中的值安全地传递到 iFrame 中的 PHP 文件?

4

1 回答 1

0

iFrame 内的元素不继承父级的范围。您最好的选择是使用消息传递,即 $broadcast 和 $on :http ://plnkr.co/edit/Osa5MNKiJKzsi7wAUXgM?p=preview

于 2013-06-03T03:55:13.400 回答