Javascript 强制iframe中的下一页加载中断

Javascript 强制iframe中的下一页加载中断,javascript,html,iframe,firefox-addon,Javascript,Html,Iframe,Firefox Addon,我有一个iframe加载新的选项卡页面。单击缩略图,尽管它加载在该iframe中。我希望iframe中的任何后续加载都加载到窗口。top。这是否可以在不单独将缩略图设置为使用target=\u blank的情况下实现。因为如果用户删除了一个缩略图,它将由另一个缩略图填充,而该缩略图不会设置此目标属性 我给出了这个javascript和html5,因为同样的知识也适用于打破框架 如果没有javascript/html5解决方案,这些是我对选项的想法: 将unload事件添加到iframe。但是在

我有一个iframe加载新的选项卡页面。单击缩略图,尽管它加载在该iframe中。我希望iframe中的任何后续加载都加载到
窗口。top
。这是否可以在不单独将缩略图设置为使用
target=\u blank
的情况下实现。因为如果用户删除了一个缩略图,它将由另一个缩略图填充,而该缩略图不会设置此
目标属性

我给出了这个javascript和html5,因为同样的知识也适用于打破框架

如果没有javascript/html5解决方案,这些是我对选项的想法:

  • unload
    事件添加到iframe。但是在卸载事件对象中,我找不到它将要使用的新url
  • 在修改请求时使用
    http
    observer,在修改时检查
    loadContext
    窗口是否为iframes contentWindow,如果是,则中止该请求并将其加载到
    窗口中。top
    ,我只是认为这对于应该如此简单的东西来说太过分了
      • 在整个文档或窗口上添加一个
        单击
        事件侦听器
      • 然后在调用事件侦听器时,检查目标
      • 您可能需要遍历
        .parentElement
        树,直到找到
      • 如果成功
        .preventDefault()
        则事件
      • 然后,做你想做的事(tm)
      例如:

      addEventListener("click", function(e) {
        let target = e.target;
        while (target && !target.href) {
          // Find the parent <a>, if any
          target = target.parentElement;
        }
        if (!target) {
          // Nothing found;
          return;
        }
        e.preventDefault();
        alert(target.href);
        // window.top.location = target.href; ?!
      });
      
      addEventListener(“单击”),函数(e){
      设target=e.target;
      while(target&&!target.href){
      //查找父项(如果有)
      target=target.parentElement;
      }
      如果(!目标){
      //没有发现任何东西;
      返回;
      }
      e、 预防默认值();
      警报(target.href);
      //window.top.location=target.href?!
      });
      

      在控制台中对此进行了测试,似乎效果不错。

      谢谢,伙计,我投票支持侧面解决方案。虽然我不能这样做。因为如果用户使用密钥,它将丢失。一些插件也使用键在这里导航。我还希望在其他地方也能使用这种从帧中断的技术。但目前我使用的解决方案是变异观察者,每次添加缩略图时,我都会查询选择器,它是一个元素,并设置它的
      target=\u parent
      thx,通过键盘切换到链接,然后点击
      enter
      ,实际上也会生成一个点击事件。因此,键盘导航也包括在内。还是我遗漏了什么?哦,不可能,我不知道。我实际上没有测试我只是假设lol ok谢谢老兄!实际上我对这个也很感兴趣。后续页面加载不必按
      的元素进行,因此我不喜欢
      单击
      解决方案。是否有其他想法来强制下一次加载?关于
      卸载
      的更多信息?从加载项/特权范围来看,必须存在一个优雅的解决方案。请撤销您已接受的解决方案,希望其他人可以提供其他想法。