美文网首页
Chrome上跨域iframe标签的一些表现

Chrome上跨域iframe标签的一些表现

作者: 该帐号已被查封_才怪 | 来源:发表于2019-11-13 09:56 被阅读0次

父页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
  <meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,user-scalable=no" name="viewport">

  <title>Title</title>
</head>
<body>
  <iframe src="http://xxxxxxx:3002/iframe.html" frameborder="0"></iframe>

<script>
  console.log('window',window)
  console.log('parent',parent)
  console.log('window===parent',window===parent)
  console.log('window===top',window===top)
  console.log('window===self',window===self)

</script>

</body>
</html>

被嵌套的子页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
  <meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,user-scalable=no" name="viewport">

  <title>Title</title>
</head>
<body>
<div class="cainiao">我是iframe</div>
<script>
  console.warn('以下为iframe中打印的信息=========================================')
  console.warn('window-iframe',window)
  console.warn('self !== top',self !== top)
  console.warn('window !== parent',window !== parent)
  console.warn('document.referrer',document.referrer)
  console.warn('document',document.getElementsByClassName('cainiao'))
  // if(self !== top){
  //
  //   top.location='http://xxxxx:3000/install-guid.html'
  // }


  // console.error('parent-iframe',parent)
   console.error('top-iframe',top)
//  console.error('top.location-iframe',top.location)

</script>

</body>
</html>

一、父页面运行的结果

image.png

二、子页面运行的结果

image.png

三、得出的结论

1、被嵌套的子页面无法直接获取top、parent对象信息,但可以通过以下方式判断自己是不是被iframe了

  console.warn('self !== top',self !== top)
  console.warn('window !== parent',window !== parent)

2、被嵌套的子页面无法通过top.location或parent.location获取其父页面的网址,但是可以在父页面中通过top.location=xxxx或parent.location=xxxx进行跳转来控制父页面,不仅如此,子页面可以在父页面中通过 document.referrer获取其父页面的网址

3、父页面无法执行子页面中打印父top、parent对象的语句

相关文章

网友评论

      本文标题:Chrome上跨域iframe标签的一些表现

      本文链接:https://www.haomeiwen.com/subject/lzzcictx.html