在AMP中,可以使用postMessage方法来实现嵌套iFrame之间的通信。下面是一个示例解决方法:
首先,在主页面中,我们创建一个iFrame,并在其src属性中指定要加载的子页面。
然后,在子页面(https://example.com/child-page.html)中,我们可以使用postMessage方法来发送消息到父页面。
// 发送消息到父页面
window.parent.postMessage('Hello from child page!', '*');
接下来,在主页面中,我们使用AMP的amp-listen-to指令来监听子页面发送的消息。
然后,我们可以使用AMP的绑定功能来获取子页面发送的消息。
// 处理子页面发送的消息
document.getElementById('childPageListener').addEventListener('message', function(event) {
var message = event.data;
console.log('Received message from child page:', message);
});
这样,当子页面发送消息时,主页面会接收到并在控制台输出。
需要注意的是,为了确保安全性,需要在主页面的amp-iframe中添加sandbox属性,并设置为"allow-scripts allow-same-origin",以限制子页面的行为。
上一篇:AMP在向下滚动时停止视频播放
下一篇:AMP中的替代文本