0

我们要求我们加载一个单独的页面作为模式(是的,对吗?)

用于指示操作的嵌入页面window.parent.postMessage(messageString, '*')已完成。

我想使用 stenciljs 的@Listener

我有一个带有 iframe 到另一页的工作模式,使用 old school window.addEventListener('message', myMessageHandlingDelegate)

但是,我真的很想使用@Listener属性/装饰器来处理发布消息的结果。我试过@Listener('message')了,但没有添加代码....

有没有办法让一个 stenciljs 监听器来捕捉从子 iframe 发布的消息?

4

2 回答 2

1

@Listen装饰器用于将侦听器添加到 JavaScript 自定义事件 ( https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent )或 Stencil 子组件发出的事件。这意味着您不能将 Message API(使用window.postMessage或侦听消息事件)与该装饰器一起使用。您仍然可以addEventListener像问题中指出的那样使用消息事件。

于 2019-01-03T12:34:10.803 回答
0

我在 stenciljs 自定义组件中使用了以下代码来使其正常工作:

@Listen('message', { target: 'window' })
handleMessage(ec) {
  console.log("Event from iFrame triggered");
}
于 2020-11-05T18:49:54.550 回答