检测iframe内SPA(单页应用程序)的URL变化

2023-12-21

我有一个渲染 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(使用前将#替换为@)

检测iframe内SPA(单页应用程序)的URL变化 的相关文章

随机推荐