精彩评论






随着互联网技术的不断发展HTML5成为了前端开发的要紧技术之一。H5脚本编程作为一种新兴的编程形式为开发者提供了丰富的功能如跨文档消息传递、拖放API、音频与视频解决等。本文将带领大家一步步学H5脚本编程,并通过实际案例实行测试。
dataTransfer对象是对象的一个属性,用于从被拖动元素项放置目标传递格式富的数据。dataTransfer对象有两个主要方法:getData()和setData()。在结构化数据时,先调用JSON.stringify(),在onmessage解决程序中调用JSON.parse()。
跨文档消息传递(cross-document messaging)指的是在来自不同域的页面间传递消息。window.postMessage()方法可安全地实现跨源通信,常常对两个不同页面的脚本只有当实他们的页面位于相同的协议(多数情况下为https),端口号(443为https)时,才能实通信。
3. 拖放API
HTML5原生拖放API提供了一种简单的形式来实现拖放功能。主要涵以下几个:
- dragstart:拖动开始时触发;
- drag:拖动期间触发;
- dragend:拖动结时触发;
- drop:放置元素时触发。
咱们需要创建一个HTML文件,并在其中添加以下代码:
```html
#drag {
width: 100px;
height: 100px;
background-color: skyblue;
cursor: move;
}
#drop {
width: 300px;
height: 300px;
background-color: lightblue;
position: absolute;
top: 150px;
left: 200px;
}
var drag = document.getElementById('drag');
var drop = document.getElementById('drop');
drag.addEventListener('dragstart', function(e) {
e.dataTransfer.setData('text/pln', 'dragstart');
});
drop.addEventListener('drop', function(e) {
e.preventDefault();
var data = e.dataTransfer.getData('text/pln');
if (data === 'dragstart') {
alert('拖放成功!');
}
});
```
在这个示例中,咱们创建了一个可拖动的元素(drag)和一个放置目标(drop)。通过监听dragstart和drop,我们实现了拖放功能。
我们创建一个简单的跨文档消息传递示例。我们需要两个HTML文件,分别命名为page1.html和page2.html。
page1.html:
```html
window.addEventListener('message', function(e) {
if (e.origin !== 'http://example.com') {
return;
}
console.log('Received message from page2: ' e.data);
});
window.postMessage('Hello from page1', 'http://example.com');
```
page2.html:
```html
window.addEventListener('message', function(e) {
if (e.origin !== 'http://example.com') {
return;
}
console.log('Received message from page1: ' e.data);
});
window.postMessage('Hello from page2', 'http://example.com');
```
在这个示例中,我们分别在两个页面中利用了window.postMessage()方法来发送消息并监听来自对方页面的消息。需要留意的是,这里的origin和message必须一致,才能实现跨文档消息传递。
打开上面创建的简单拖放示例尝试拖动div元素到放置目标观察是不是可以成功放置。
分别打开page1.html和page2.html,观察控制台是不是能够接收到来自对方页面的消息。
Copyright © 2000 - 2023 All Rights Reserved.