添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

iframe注入

上一篇已经介绍过了如何在 iframe 注入 js 文件, 重点是在 manifest.json content_scripts 每个匹配项最后加上 "all_frames":true

    "content_scripts": [
            // "matches": ["*://*.taobao.com/*"],
            "matches": ["<all_urls>"],
            "js": ["jquery-3.4.1.min.js", "content_scripts.js"],
            "run_at": "document_end"
        }, {
            "matches": ["*://*.iframe_src.com/*"],
            "js": ["jquery-3.4.1.min.js", "content_scripts.js"],
            "run_at": "document_end",
            "all_frames":true

也就是说, 我们可以为每一个有需要的 iframe 都注入特定的 js, 来完成特定的工作

iframe嵌套情况

例如有下面 iframe 嵌套的情况: 页面之间还有交互操作, 那么用什么方式来处理最合适呢?

  • top : 最外层页面
  • list : 详情页面
  • filter : 筛选页面
  • document.querySelector("input") 返回找到的第一个元素
  • document.querySelectorAll("input") 返回 NodeList 数组
  • 在 iframe 获取父级页面的 document 可以使用: window.parent.document
  • 用 jquery 操作
  • 获取 iframe 的 jquery 实例: var $iframe = $("#iframeId").contents();
  • 获取 iframe 的元素: $iframe.find("#name")
  • 获取 iframe 获取父级页面的元素: $("#msg_top", window.parent.document)
  • Get IFrame’s document, from JavaScript in main document
  • jQuery/JavaScript: accessing contents of an iframe
  • how to access iFrame parent page using jquery?
  •