检测 iFrame 链接是否在新选项卡中打开

问题描述 投票:0回答:0

在我的 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);
};
javascript reactjs iframe single-page-application
© www.soinside.com 2019 - 2024. All rights reserved.