第十六章----HTML5脚本编程

一、跨文档消息传递
关于跨文档消息传递,其本质而言是自己利用自己的方法给自己传递消息,只是这个传递的动作是在另外一个window对象中
1)、定义
跨文档消息传递指的是在一个视窗中,不同内嵌的框架(iframe)传递消息

2)、contentWindow属性(相关api介绍
其内嵌框架的一个代理window对象,既然是代理,就说明它只含有某些方法和属性,并不是正真window对象的完整副本

3)、postMessage和onmessage事件
postMessage事件用于发送消息,在发送消息方框架使用,但是却作用与接受消息框架的代理window对象上(这就是为什么说是自己利用自己的方法给自己传递消息)。存在两个参数,第一个参数为需传递的数据,类型为String;另外一个表明获取消息内嵌框架的域(window.origin),默认允许全部为'*'
onmessage事件用于接收信息,在内嵌框架中使用,其事件处理程序对象(event)中包含三个参数。data(所需接受的数据),origin(发送方框架所在的域)和source(发送框架的代理window对象)

4)、示例:
postMessage.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <div>parent</div>
  <button onclick="clickFun()">parentSend</button>
  <iframe src="file:///C:/Users/30863/Desktop/native-test/postMessageChild.html" frameborder="0"></iframe>
  <!-- <iframe src="https://www.baidu.com/" frameborder="0"></iframe> -->
</body>
<script>
  const child = document.getElementsByTagName('iframe')[0]
  function clickFun() {
    child.contentWindow.postMessage('parentData', '*')
  }
  window.addEventListener('message', function(e) {
    const event = e || window.event
    const newNode = document.createElement('div')
    newNode.innerText = event.data
    document.body.append(newNode)
  })
</script>
</html>

postMessageChild.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <div>child</div>
</body>
<script>
  window.addEventListener('message', function(e) {
    const event = e || window.event
    const newNode = document.createElement('div')
    newNode.innerText = event.data
    document.body.append(newNode)
    event.source.postMessage('recived', '*')
  })
</script>
</html>

二、原生拖放
1)、拖放事件
2)、自定义放置目标
3)、dataTransfer对象
4)、dropEffect和effectAllowed
5)、draggable属性
三、媒体元素
1)、属性
2)、事件
3)、自定义媒体播放器
4)、检测编辑解码器的支持情况
5)、Audio类型
四、历史状态管理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值