在我的 SPA 应用程序中,我有一个属于另一个内部应用程序的 iFrame。我希望我的应用程序在用户尝试从内部应用程序的新选项卡中打开任何链接时重新加载。我怎样才能做到这一点?
我尝试通过附加代码实现上述行为,但在新选项卡中打开链接时它不起作用。
const isIframe = () => {
try {
return window.self !== window.top;
} catch (e) {
return true;
}
};
const redirectIfIframe = (url) => {
let previousUrl = url;
const observer = new MutationObserver(function (mutations) {
if (location.href !== previousUrl) {
previousUrl = location.href;
window.location.href = url;
if (isIframe()) {
window.location.href = url;
}
}
});
const config = { subtree: true, childList: true };
observer.observe(document, config);
};