gpt4 book ai didi

google-chrome - Chrome 扩展程序 : loading a hidden page (without iframe)

转载 作者:行者123 更新时间:2023-12-03 19:44:53 25 4
gpt4 key购买 nike

有没有办法加载一个页面,对用户隐藏?

我不能使用 iframe在后台页面中,因为该页面具有 frame-busting 技术。

我不能使用 XHR,因为页面有 AJAX - 我需要它的(动态生成的)DOM。

最佳答案

恐怕您除了插入 iframe 之外别无选择。要破坏 iframe 破坏者,您可以采用以下技术:

  • 如果 iframe 被 X-Frames-Option: DENY 阻塞, 只需使用 webRequest 删除标题API - 见 Getting around X-Frame-Options DENY in a Chrome extension? .
  • 如果帧破坏者使用类似的东西
    if (top !== self) {
    top.location.href = location.href;
    }

    然后通过设置 sandbox 来阻止脚本化导航iframe 上的属性:
    var frame = document.createElement('iframe');
    frame.sandbox = 'allow-scripts';
    frame.src = 'data:text/html,<script>' +
    'if (top !== self) { top.location.href = location.href;}' +
    'alert(" (runs the rest of the code) ");' +
    '</script>';
    document.body.appendChild(frame);

    导航将被阻止而不会引发任何错误。但是,以下消息会记录到控制台:

    Unsafe JavaScript attempt to initiate navigation for frame with URL '(...URL of top page...)' from frame with URL '(....URL of frame..)'. The frame attempting navigation of the top-level window is sandboxed, but the 'allow-top-navigation' flag is not set.


  • 这些方法将始终有效,除非:
  • 该页面包含<meta http-equiv="X-Frame-Options" content="deny"> .
  • 帧破坏脚本实现为 if (top === self) { /* run code*/ }

  • 在这些情况下,您别无选择,只能打开一个新选项卡,阅读其内容,然后将其关闭。见 chrome.tabs.create chrome.tabs.remove .

    关于google-chrome - Chrome 扩展程序 : loading a hidden page (without iframe),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17299322/

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