zoukankan      html  css  js  c++  java
  • 页面

    总结

    • 由于菜单栏中前进后退的存在,document.referrer获取页面来源的方法并不可靠
    • 可以通过判断 window.opener 是否为 null,来限制通过地址栏输入url访问。但是必须使用 window.open 来实现页面跳转

    document.referrer

    定义

    • 打开到当前页面的那个页面的URI
      • A Uniform Resource Identifier (URI) 是一个紧凑的字符串用来标示抽象或物理资源。
      • 它包括了URL和URN
      • URL和URN的区别在于,URL带有网络访问协议,例如ftp://ftp.is.co.za/rfc/rfc1808.txttel:+1-816-555-1212不属于URL)

    返回空字符串的情况

    • 纠错:跨域只有在特殊的几种方法不可以,其他都是可行的
    • 纠错:https跳转http谷歌和IE9亲测都可以
    • a标签跨域可以获得
    • meta标签来控制不让浏览器发送referer<meta content="never" name="referrer">
      • 请参考https://www.cnblogs.com/qq3279338858/p/10844401.html
    • a标签设置rel="noreferrer"(兼容IE7+)
    • 直接在浏览器中输入地址
    • 通过修改Location进行页面导航的方法,除了以下几种,其余都能成功获取
      • location.assign:IE9跨域后无法获取;同域时谷歌和IE都可以获取
      • location.reload:谷歌可以,IE9不可以。带不带参数都一样
    • history
      • 所有方法在IE9均无法获得(包括back 、forward、go)
      • 谷歌也只有以下方法可以(pushState、replaceState)
    • window.open方式打开新窗口
      • IE获取不到
      • 谷歌可以正常获取
    • 鼠标拖拽打开新窗口
    • 点击Flash内部链接,各个浏览器效果不同(不详述)
    • 在微信对话框中,点击进入微信自身浏览器
    • 扫码进入微信或QQ的浏览器

    window.opener

    定义

    • 如果当前窗口是由另一个窗口打开的, window.opener保留了那个窗口的引用(window对象). 如果当前窗口不是由其他窗口打开的, 则该属性返回 null.

    能够获取的条件

    • 只有通过window.open才会返回对象,其他都是null
      • 跨域时谷歌返回的对象,不能访问资源,只能对窗口本身进行操作
      • IE9同域时可以通过访问 window.opener.location.href 对象去获取丢失的referrer信息。跨域依然能够获取到对象,但location为空
  • 相关阅读:
    Java 核心编程——文件随机读写类(RandomAccessFile)
    java 核心编程——文件过滤类(FileFilter和FilenameFilter)
    java 核心编程 ——文件操作类File
    java 编程思想笔记(七)——异常
    java 编程思想笔记(六)——内部类
    enote笔记法使用范例(2)——指针(1)智能指针
    enote笔记法使用范例(1)——自己总结的一些编写代码的常识 (a)
    enote笔记语言(2)
    enote笔记语言(1)
    monkey命令——压力测试——转载参考07
  • 原文地址:https://www.cnblogs.com/qq3279338858/p/10641496.html
Copyright © 2011-2022 走看看