zoukankan      html  css  js  c++  java
  • iframe

    在iframe中获取父级内容

    同理,在同域下,父页面可以获取子iframe的内容,那么子iframe同样也能操作父页面内容。在iframe中,可以通过在window上挂载的几个API进行获取.

    window.parent 获取上一级的window对象,如果还是iframe则是该iframe的window对象
    window.top 获取最顶级容器的window对象,即,就是你打开页面的文档
    window.self 返回自身window的引用。可以理解 window===window.self(脑残)

    1,子iframe内调用父类函数方法:

    window.parent.func();

    2,子Iframe中获取父界面的元素:

    $("#xx", window.parent.document);

    父页面获取iframe

    let iframe = window.frames['demo']

    3.iframe 刷新

    currentIframe.attr('src', currentIframe.attr('src'));

    自适应iframe

    默认情况下,iframe会自带滚动条,不会全屏.如果你想自适应iframe的话:第一步:去掉滚动条

    <iframe src="./iframe1.html" id="iframe1" scrolling="no"></iframe>

    第二步,设置iframe的高为body的高

    var iwindow = iframe.contentWindow;
    var idoc = iwindow.document;
    iframe.height = idoc.body.offsetHeight;

    防嵌套网页

    比如,最出名的clickhacking就是使用iframe来 拦截click事件。因为iframe享有着click的最优先权,当有人在伪造的主页中进行点击的话,如果点在iframe上,则会默认是在操作iframe的页面。 所以,钓鱼网站就是使用这个技术,通过诱导用户进行点击,比如,设计一个"妹妹寂寞了"等之类的网页,诱导用户点击,但实际结果,你看到的不是"妹妹",而是被恶意微博吸粉。 
    所以,为了防止网站被钓鱼,可以使用window.top来防止你的网页被iframe.

    //iframe2.html
    if(window != window.top){
        window.top.location.href = correctURL;
    }

    这段代码的主要用途是限定你的网页不能嵌套在任意网页内。如果你想引用同域的框架的话,可以判断域名。

    if (top.location.host != window.location.host) {
      top.location.href = window.location.href;
    }
  • 相关阅读:
    学习进度笔记4
    学习进度笔记3
    学习进度笔记2
    学习进度笔记1
    《梦断代码》提及文献
    《梦断代码》阅读笔记6
    《梦断代码》阅读笔记5
    需求征集系统开发进度5
    《梦断代码》阅读笔记4
    spark filter
  • 原文地址:https://www.cnblogs.com/jentary/p/11769418.html
Copyright © 2011-2022 走看看