从iframe中的角度应用程序内部访问隐藏的div的值

时间:2018-08-22 20:29:37

标签: html angular iframe elementref

我需要从有角度的应用程序内部获取隐藏div中的字符串值。这是我所拥有的:

<iframe id="sample">
    <html>
        <head></head>
        <body>
            <div id="testString" display="none;">string </div>
            <app></app>
        </body>
    </html>
</iframe>

如何在非根组件的Angular应用中访问div testString的值? 尝试了这些并得到null:

window.parent.document.getElementById('testString').textContent
document.getElementById('testString').textContent

可以用ElementRef完成吗? 另外,如何保护该字符串免受注入和xss攻击?

谢谢

1 个答案:

答案 0 :(得分:0)

Angular只是Javascript(嗯,打字稿也就是带有类型的Javascript)。因此,您可以在Angular中执行与在原始Javascript中完全相同的操作,只需将其放在组件中的ngOnInit方法下,以便加载document。如果您使用过jQuery,那么基本上就是$(document).ready()的等效项。

为了记录,我并不是说不会有更多的“角度”方式来完成您要问的事情。 ElementRef也可以使用,因为它基本上只是document.getElement*的包装。我的观点是,您不必仅使用Angular就可以编写任何特殊内容。