gpt4 book ai didi

javascript - 阻止 IFrame 导航

转载 作者:行者123 更新时间:2023-11-30 18:08:16 24 4
gpt4 key购买 nike

我使用 iframe 通过 JS 将 HTML 字符串写入其内容文档来显示 HTML 电子邮件内容。如果用户单击显示的电子邮件中的链接,我不希望用户在该 iframe 内导航。现在我有这些选择:

  1. 在新的浏览器窗口或标签页中打开链接(首选)
  2. 阻止所有导航(次优,只有在没有其他选择时)
  3. 我不知道有更好的选择吗?

我怎样才能完成这两个选项中的任何一个?

我知道 HTML5 引入了一个 sandbox 属性,但不幸的是,它只适用于 ChromeSafari,所以这不是一个选择。

最佳答案

如果 iframe 来自不同的来源,此方法将通过在 iframe 源更改时重置它来阻止导航:

  var $iframe = $('iframe');
var iframeUrl = 'http://example.com/foo';
var iframeLoaded = false;
$iframe.on('load', function () {
if (!iframeLoaded) { # Allow initial load of iframe.
iframeLoaded = true;
return;
}

# Reset iframe location back to original source to prevent navigation.
iframeLoaded = false;
$iframe[0].src = iframeUrl;
});

不幸的是,无法检测 iframe 加载的开始,因此它会在返回之前短暂地闪现新内容。另外请注意,这会破坏浏览器后退按钮。

关于javascript - 阻止 IFrame 导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15259673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com