javascript - 从一个页面发送一个函数并在另一个页面上运行它
问题描述
我可以访问本地主机上的两个页面。我要将函数发送到的页面位于我要从中发送函数的页面的框架中。postmessage 会起作用并在接收器/iframe 页面中设置事件侦听器吗?功能是:
ipa.searchByString(query);
监听器语法:
ipa.addListener('query', myAppEventHandler);
};
解决方案
是的,您可以将函数作为字符串从一个页面发送到另一个页面,但是如果该函数依赖于其他函数变量,那将无法正常工作。通常,我认为您不希望在这里。而是将处理程序传播到消息传递通道:
ipa.addListener('query', function proxy(data) {
iframe.postMessage({ name: "ipa", data });
});
然后在另一页接收它:
window.onmessage = e => {
const { name, data } = e.data;
if(name === "ipa") myAppEventHandler(data);
};
推荐阅读
- ios - Json数据未显示在tableView swift 5上
- graph - 找到一条从顶点 s 到顶点 t 的路径,其中颜色交替最少
- huggingface-transformers - 在 docker 上运行变压器
- android - 如何在 HashMap 中添加元素并保存它?[安卓]
- docker - Asp.net 核心,“asn1 编码例程:asn1_d2i_read_bio:not enough data”证书错误
- c++ - 为什么 cmake 不允许 <> 样式包含?
- repo - git-repo (aosp repo) 工具再次从本地缓存中检出项目
- opencv - 相机校准。四月标签和国际象棋图案校准之间的区别?
- regex - 如何制作一个正则表达式来匹配带有左括号的文本,但前面没有空格?
- javascript - 如何使用带有拖放功能的 if 语句根据拖动的对象打开不同的链接?