javascript - 强制 iframe 中的下一页加载中断

标签 javascript html iframe firefox-addon

我有一个加载新标签页的 iframe。单击缩略图虽然它会加载到该 iframe 中。我希望 iframe 中的任何后续加载都加载到 window.top 中。如果不单独设置缩略图以使用 target=_blank 是否可行?因为如果用户删除一个缩略图,它会被另一个没有此 target 属性集的缩略图填充。

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

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

  • 向 iframe 添加一个 unload 事件。但是在卸载事件对象中我找不到它要访问的新 url
  • 使用 http-on-modify-request 观察器并在修改时检查 loadContext 窗口是否为 iframe contentWindow,如果是则中止该请求并将其加载到window.top,我只是认为这对于应该如此简单的事情来说有点过分了

最佳答案

  • 添加一个click整个文档或窗口的事件监听器。
  • 然后当调用事件监听器时,检查目标。
  • 您可能需要遍历 .parentElement树,直到找到 <a> .
  • 如果成功.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; ?!
});

在控制台中对此进行了测试,它似乎有效。

关于javascript - 强制 iframe 中的下一页加载中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24646573/

相关文章:

javascript - 为什么我没有得到任何输出?

css - 如何更改 asp.update 面板中内容的字体大小

html - IE8 边框和边距问题

javascript - 将表单数据 POST 到 iframe 内的另一个表单

html - IE6 - 加载时元素跳转

javascript - 如何将 iFrame 嵌入外部网站

JavaScript CORS Post 请求在服务器端有空参数

javascript - 从 node.js 检索时 Mysql 日期不同

javascript - Babel/webpack 依赖项

javascript - 根据表单域点击改变div内容