zoukankan      html  css  js  c++  java
  • document.referrer的使用和window.opener 跟 window.parent 的区别

    偶尔看到了document.referrer,之前一直有点疑惑与window.opener 和 window.parent之间的区别

    首先查了一下w3cSCHOOL,

    上面的解释:referrer 属性可返回载入当前文档的文档的 URL。

    但是解释中没有写怎么载入才能用referrer,

    翻看了几篇文章,终于搞懂了。

    window.opener是当前页面A通过open方法弹出一个窗口B,那在B页面上 window.opener就是A 

    window.parent是当前页面C通过location.href转到新的页面D,那在D页面上window.parent就是B 或者是页面E里套一个frame为F,那F页面的window.parent就是E 

    referrer 描述: document对象的referrer属性,返回导航到当前网页的超链接所在网页的URL。

    document.referrer的具体应用场景

    如果要显示某一个网站的超链接跳转到你的网站你可以如下:

    <script type="text/javascript"> 
        var refurl=document.referrer; 
        if(refurl.indexOf("wowgame")>-1){ 
            alert("你的来源网址为:【"+document.referrer+"】目前本站与该站已终止合作。"); 
            location.replace(refurl); 
        }     
    </script>

    js操作frame详细解说,window.opener和window.parent的区别


    frame框架里的页面要改其他同框架下的页面或父框架的页面就用parent
    window.opener引用的是window.open打开的页面的父页面。 

    window.frames对象可以引用iframe里的页面,也可以引用frameset里的页面.

    可以这样

    window.frames[0].document.getElementById('xx');


    可以这样

    window.frames[0].document.body.innerHTML;



    frm = window.parent.window.frames['uploadFrame'];
    frmDocument = frm.document;
    frm.sb(3); //sb 是uploadFrame页面里的一个函数



    对于firefox
    如果你遇到报错:parent.document.frames has no properties
    换为如下代码就可以了,这个代码IE,ff兼容. frm = window.parent.window.frames['uploadFrame'];其实 frames 集合并不是挂在 document 而是挂在 window 对象下.

    注意这样修改frame里的页面有限制,就是必须是同域下的,否则无法访问
    如果是同一域下,但是子域名不同,那么涉及到的js,html文件都加上一句。

    document.domain = xxx.com [这里填写你的域名]
    
    document.getElementById('iframeid').contentWindow.document.getElementById('someelementid');
  • 相关阅读:
    第二阶段总结
    傻子都会app与学习通
    天工疼憨仔组项目评审
    第一阶段意见
    冲刺(十)
    冲刺(九)
    冲刺(八)
    冲刺(七)
    后Hadoop时代的大数据架构
    ZooKeeper典型使用场景一览
  • 原文地址:https://www.cnblogs.com/waisonlong/p/4666798.html
Copyright © 2011-2022 走看看