window.parent.postMessage 给@Listener
window.parent.postMessage to @Listener
我们有一个要求,我们加载一个单独的页面作为模式(是的,对吧?)
嵌入页面使用 window.parent.postMessage(messageString, '*')
表示操作已完成。
我想用stenciljs的@Listener
我有一个带有 iframe 的工作模式到另一个页面,使用旧学校 window.addEventListener('message', myMessageHandlingDelegate)
。
不过,我真的很想用@Listener
attribute/decorator 来处理发布消息的结果。我尝试了 @Listener('message')
但没有添加代码....
有没有办法让 stenciljs 侦听器捕获从子 iframe 发布的消息?
@Listen
装饰器用于将侦听器添加到 JavaScript 自定义事件 (https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent) 或由 Stencil 子组件发出的事件。这意味着您不能将 Message API(使用 window.postMessage
或监听消息事件)与该装饰器一起使用。您仍然可以像您在问题中指出的那样使用 addEventListener
消息事件。
我在 stenciljs 自定义组件中使用了以下代码来实现此功能:
@Listen('message', { target: 'window' })
handleMessage(ec) {
console.log("Event from iFrame triggered");
}
我们有一个要求,我们加载一个单独的页面作为模式(是的,对吧?)
嵌入页面使用 window.parent.postMessage(messageString, '*')
表示操作已完成。
我想用stenciljs的@Listener
我有一个带有 iframe 的工作模式到另一个页面,使用旧学校 window.addEventListener('message', myMessageHandlingDelegate)
。
不过,我真的很想用@Listener
attribute/decorator 来处理发布消息的结果。我尝试了 @Listener('message')
但没有添加代码....
有没有办法让 stenciljs 侦听器捕获从子 iframe 发布的消息?
@Listen
装饰器用于将侦听器添加到 JavaScript 自定义事件 (https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent) 或由 Stencil 子组件发出的事件。这意味着您不能将 Message API(使用 window.postMessage
或监听消息事件)与该装饰器一起使用。您仍然可以像您在问题中指出的那样使用 addEventListener
消息事件。
我在 stenciljs 自定义组件中使用了以下代码来实现此功能:
@Listen('message', { target: 'window' })
handleMessage(ec) {
console.log("Event from iFrame triggered");
}