如何防止iFrame在与浏览器交互后扰乱其历史记录?

2022-07-14 00:00:00 javascript html angular grafana

所以在我的例子中,我使用iFrames将Grafana附加到我的页面(它为我提供了漂亮且易于使用的图表)。

可以注意到,Grafana的iFrames在图形上每次进行放大或缩小(使用鼠标单击)交互后都会在我的角度页面上触发一种刷新,从而扰乱浏览器的历史记录。我没有在iframe的src上看到任何改变来证明这个页面刷新是合理的,而且它显然没有触发任何东西(例如,没有触发任何onLoad)。

这是正常行为吗?我如何才能防止这种情况?

我使用的是Grafana版本6.2.2和角度6.1的脚本化仪表板。


解决方案

希望对您有所帮助,我可能会在您的方案中尝试一下:

  1. 只有grafana iframe的空白html页。查看它是否仍刷新父页面。如果不是,则可能是角度问题。
  2. 你说沙盒打破了iFrame?也许可以玩玩不同的沙盒价值。如允许脚本并查看它是否需要其中一个值才能工作

    https://www.w3schools.com/tags/att_iframe_sandbox.asp

  3. 也许可以尝试将Grafana iframe放在另一个iframe中。我以前从未这样做过,但它可能会尝试刷新父iFrame,而不是父页面。

在这个问题上发布您的角度html代码也会很有帮助。可能会有一些提示。

相关文章