推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
PHPer233

js 能不能获取 iframe 框架的 html 源码?

  •  1
     
  •   PHPer233 · Oct 24, 2018 via iPhone · 6645 views
    This topic created in 2935 days ago, the information mentioned may be changed or developed.
    我在 A 网页的页面上用 js 创建一个 iframe,这个 iframe.src 等于 B 网页的某个页面。我想在 iframe 加载完成后在 A 页面上用 js 获取 iframe 的 html 内容。这个功能弄了半天没搞出来,特来请教一下。
    20 replies  •  2018-10-25 00:13:04 +08:00
    xiaoxinshiwo
    xiaoxinshiwo
    Oct 24, 2018
    1
    iframe.contentWindow, 获取 iframe 的 window 对象
    iframe.contentDocument, 获取 iframe 的 document 对象
    不能吗?
    shyangs
    shyangs
    Oct 24, 2018
    2
    As 1F.
    BTW, 有沒跨域.
    Seanfuck
    Seanfuck
    Oct 24, 2018
    3
    跨域的话肯定不行
    duan602728596
    duan602728596
    Oct 24, 2018 via iPhone
    4
    不要忘了,获取要在 iframe 的 load 事件内执行
    PHPer233
    PHPer233
    OP
    Oct 24, 2018 via iPhone
    5
    @Seanfuck A 和 B 是两个不同的域名。这应该是跨域了吧?真的没办法操作吗?
    yoshiyuki
    yoshiyuki
    Oct 24, 2018
    6
    可以让后端帮你拿呀
    shintendo
    shintendo
    Oct 24, 2018
    7
    跨域不能的吧
    不然你在自己网页上放个隐藏 iframe,指向 X 站,然后用户又有 X 站的登录状态,那你不就拿到他的 X 站页面上的内容了
    djs
    djs
    Oct 24, 2018
    8
    后台抓呗
    097ecom
    097ecom
    Oct 24, 2018
    9
    如果 iframe 里面的 URL 和你网站的网址为同一个,那就可以,否则不行,跨域了
    agdhole
    agdhole
    Oct 24, 2018
    10
    跨域会拦截
    zhzer
    zhzer
    Oct 24, 2018 via Android
    11
    不能,别说 iframe,本窗口中的 js 能拿到手的文本都是浏览器处理完的
    Foxkeh
    Foxkeh
    Oct 24, 2018 via iPhone
    12
    请百度 iframe 父子兄弟调用
    t6attack
    t6attack
    Oct 24, 2018
    13
    你实在要想实现的话,把这个扩展装上,开关打开,就可以了。
    https://chrome.google.com/webstore/detail/nlfbmbojpeacfghkpbjhddihlkkiljbi
    loginv2
    loginv2
    Oct 24, 2018 via Android
    14
    你拿不到,但是它可以主动给你
    t6attack
    t6attack
    Oct 24, 2018
    15
    这个问题,正好可以解释下浏览器跨域限制的逻辑。其实不难理解。

    如果按你说的这个方法,这样可以的话。那么你访问一个网站,网站方就可以随意构建 0 像素 iframe,指向任意网站,并把代码传回服务端。这就相当于把你变成代理了。只要你停留在页面上,网站方就可以以 你的 IP 身份 上网、爬取信息、甚至黑客行为。。那样互联网不就乱套了么?
    SoloCompany
    SoloCompany
    Oct 24, 2018 via iPhone
    16
    如果你可以控制 iframe 的内容,那么可以使用 sendmessage 跨域传递消息
    PHPer233
    PHPer233
    OP
    Oct 24, 2018 via iPhone
    17
    @t6attack 有道理
    cdwyd
    cdwyd
    Oct 24, 2018
    18
    其实是可以拿到的,用的是安卓部分早期浏览器的一个漏洞,亲测可以拿到别人网站的源代码。
    具体代码现在估计找不到了,不过搂着可以按这个方向搜索下资料
    OctopusGO
    OctopusGO
    Oct 24, 2018 via Android
    19
    可以,我以前遇到过这个问题,我明天上班了把以前的代码给你
    PHPer233
    PHPer233
    OP
    Oct 25, 2018 via iPhone
    20
    @OctopusGO 真的吗?谢谢啦
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   959 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 19:24 · PVG 03:24 · LAX 11:24 · JFK 14:24
    ♥ Do have faith in what you're doing.