我有一个渲染 iframe 的 React Web 应用程序。 iframe 显示简单的网站或 SPA 网站。
我想在每次 iframe 中的 URL 发生变化时调用一个函数。
多个解决方案正在使用“onLoad”,但这不适用于我检查过的 SPA 应用程序 URL 更改。
有人有检测 SPA iframe URL 变化的解决方案吗?
代码示例:
function App() {
return (
<div >
<iframe id='iframeid' onLoad={(e)=>{console.log('page loaded', e)}} src="http://127.0.0.1:8001" style={{position: 'absolute', height: '100%', border: 'none'}} width='100%'></iframe>
</div>
);
}
export default App;
http://127.0.0.1:8001/ http://127.0.0.1:8001/是我在本地运行的 SPA
onLoad 在页面初始加载时起作用,但是当 URL 更改(使用 React-router)时什么也没有发生。
如果您可以控制 iframe 和包装器,则可以使用发布消息 https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage。在 iframe 中添加一个事件处理程序,以便在加载文档时向外部浏览器发布一条包含新 URL 的消息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)