HTML5系列二(标签元素、FileReader、拖放)

nav元素的使用场合

aside元素的使用场合

aside元素主要有以下两种使用方法:

1、被包含在article中作为主要内容的附属信息部分,其中的内容可以是与当前文章有关的参考资料、名词解释等

2、在article元素之外使用,作为页面或站点全局的附属信息部分

html5细节概述

1、一个网页内并未限制header元素的个数,可以拥有多个,也可以为每个内容区块加一个header元素(footer同理)

2、autofocus:一个页面上只能有一个控件具有该属性

3、pattern属性:要求输入内容符合一定的格式

<input pattern="[0-9][A-Z]{3}" name="part" placeholder="输入内容:一个数字与三个大写字母" />

4、form元素与input元素都具有一个checkValidity方法,调用该方法可以显式的进行有有效性验证

5、两种方法取消表单验证:1)利用form元素的novalidate属性2)利用input元素的input元素或submit元素的formnovalidate属性,因为利用input元素的formnovalidate属性可以让表单验证对单个input失效,而如果用submit元素的formnovalidate属性则整个表单都失效

6、自定义错误可利用input类型元素的setCustomValidity方法

7、mark元素的两个应用场景:1)搜索结果中高亮显示关键字2)引用原文的时候,将原文作者没有特别重要标示出来的内容标示出来

8、progress元素的使用示例

    <h2>progress元素的使用示例</h2>
    <p>完成百分比:<progress id="p" max="100">         <span>0</span>%</progress></p>
    <input type="button" value="请点击" onclick="btnClick()" />
    <script type="text/javascript">

        function btnClick() {
            var progressBar = document.getElementById(‘p‘);
            progressBar.getElementsByTagName(‘span‘)[0].textContent = ‘0‘;
            for (var i = 0; i < 100; i++) {
                updateProgress(i);
            }
        }
        function updateProgress(newValue) {
            var progressBar = document.getElementById(‘p‘);
            progressBar.value = newValue;
            progressBar.getElementsByTagName(‘span‘)[0].textContent = newValue;
        }
    </script>

9、html5中FileList对象与file对象简单示例(下例中accept属性表示可以上传的文件格式)

    <input type="file" id="file" multiple size="80"  accept="image/*"/>
    <input type="button" onclick="showFileName();" value="文件上传" />
    <script type="text/javascript">
        function showFileName() {
            var file;//= document.getElementById(‘file‘);
            for (var i = 0; i < document.getElementById(‘file‘).files.length; i++) {
                file = document.getElementById(‘file‘).files[i];
                console.log(file.name);//文件名
                console.log(file.lastModifiedDate);//文件最后一次修改时间
                console.log(file.size);//文件字节长度
                console.log(file.type);//文件类型 对于图像类型的文件,Blob对象的type属性是以image/开头
            }
        }
    </script>

HTML5中input元素的种类

FileReader接口

FileReader接口的方法API如下图所示:

下面用一个示例来说明:

    <script type="text/javascript">
        var result = document.getElementById(‘result‘);
        var file = document.getElementById(‘file‘);
        if (typeof FileReader == ‘undefined‘) {
            result.innerHTML = ‘您的浏览器不支持FileReader‘
            file.setAttribute(‘disabled‘, ‘disabled‘);
        }
        function readAsDataURL() {
            var file = document.getElementById(‘file‘).files[0];
            if (!/image\/\w+/.test(file.type)) {
                alert(‘请确保文件为图像类型‘);
                return false;
            }
            var reader = new FileReader();
            reader.readAsDataURL(file);
            reader.onload = function (e) {
                var result = document.getElementById(‘result‘);
                result.innerHTML = ‘<img src="‘ + this.result + ‘"  />‘;
            }
        }
        function readAsBinaryString() {
            var file = document.getElementById(‘file‘).files[0];
            var reader = new FileReader();
            reader.readAsBinaryString(file);
            reader.onload = function (e) {
                var result = document.getElementById(‘result‘);
                result.innerHTML = this.result;
            }
        }
        function readAsText() {
            var file = document.getElementById(‘file‘).files[0];

            var reader = new FileReader();
            reader.readAsText(file);
            reader.onload = function (e) {
                var result = document.getElementById(‘result‘);
                result.innerHTML = this.result;
            }
        }
    </script>
    <p>
        <label>请选择一个文件:</label>
        <input type="file" id="file" />
        <input type="button" value="读取图像" onclick="readAsDataURL()" />
        <input type="button" value="读取二进制数据" onclick="readAsBinaryString()" />
        <input type="button" value="读取文件文件" onclick="readAsText()" />

    </p>
    <div id="result"></div>

FileReader接口的事件API如下图所示:

    <script type="text/javascript">
        var result = document.getElementById(‘result‘);
        var file = document.getElementById(‘file‘);
        if (typeof FileReader == ‘undefined‘) {
            result.innerHTML = ‘您的浏览器不支持FileReader‘
            file.setAttribute(‘disabled‘, ‘disabled‘);
        }
        function readFile() {
            var file = document.getElementById(‘file‘).files[0];
            if (!/image\/\w+/.test(file.type)) {
                alert(‘请确保文件为图像类型‘);
                return false;
            }
            var reader = new FileReader();
            reader.onload = function (e) {
                console.log(‘onload‘);
                var result = document.getElementById(‘result‘);
                result.innerHTML = ‘<img src="‘ + this.result + ‘"  />‘;
            }
            reader.onprogress = function () {
                console.log(‘progress‘);
            }
            reader.onabort = function () {
                console.log(‘abort‘);
            }
            reader.onerror = function () {
                console.log(‘loadstart‘);
            }
            reader.onloadstart = function () {
                console.log(‘loadstart‘);
            }
            reader.onloadend = function () {
                console.log(‘loadend‘);
            }
            reader.readAsDataURL(file);
        }
    </script>
    <p>
        <label>请选择一个图像文件:</label>
        <input type="file" id="file" />
        <input type="button" value="显示图像" onclick="readFile()" />
    </p>
    <div id="result"></div>

拖放API

<script type="text/javascript">
    function init() {
        var source = document.getElementById(‘dragme‘);
        var dest = document.getElementById(‘text‘);
        var dragIcon = document.createElement(‘img‘);
        dragIcon.src = ‘http://files.cnblogs.com/files/liyunhua/ctrip.gif‘;
        source.addEventListener(‘dragstart‘, function (ev) {
            var dt = ev.dataTransfer;//向dataTransfer对象追加数据
            dt.effectAllowed = ‘copy‘;//设置effectAllowed属性
            //dt.setDragImage(dragIcon, -10, 10); //设定自定义图标
            dt.setData(‘text/plain‘, ‘你好‘);
        }, false);
        dest.addEventListener(‘dragover‘, function (ev) {
            var dt = ev.dataTransfer;
            dt.dropEffect = ‘copy‘;//设定dropEffect属性
            ev.preventDefault();
        }, false);
        /*因为默认情况下,拖放的目标元素是不允许接受元素的,为了把元素拖放到其中,必须把默认处理给关闭掉*/
        dest.addEventListener(‘dragend‘, function (ev) {
            ev.preventDefault();//不执行默认行为(拒绝被拖放)
        }, false);
        /*必须在目标元素的drop事件中关闭默认处理,否则目标地元素不能接受被拖放的元素*/
        dest.addEventListener(‘drop‘, function (ev) {
            var dt = ev.dataTransfer;//从dataTransfer对象获得数据
            var text = dt.getData(‘text/plain‘);
            dest.textContent += text;
            ev.preventDefault();//不执行默认行为(拒绝被拖放)
            ev.stopPropagation();//停止事件传播
        }, false);
    }
    //还必须设定整个页面为不执行默认处理(拒绝被播放)
    document.ondragover = function (e) {
        e.preventDefault();
    }
    document.ondrop = function (e) {
        e.preventDefault();
    }
</script>
<body onload="init()">
    <div id="dragme" draggable="true" style="width: 200px; border: 1px solid gray;">请拖放 </div>
    <div id="text" style="width: 300px; height: 300px; border: 1px solid gray;"></div>
</body>

时间: 2024-10-25 00:24:22

HTML5系列二(标签元素、FileReader、拖放)的相关文章

初学HTML5系列二:HTML5新增的事件属性

Window事件属性: 属性 值 描述 onafterprint  script 文档打印之后运行的脚本. 属性发生于用户设置页面打印并且打印对话框已出现之后. onbeforeprint  script 文档打印之前运行的脚本.属性在用户已设置页面打印之后立即触发,但是在打印对话框出现之前. onbeforeunload script 文档卸载之前运行的脚本. onerror script 在错误发生时运行的脚本. onhaschange script 当文档已改变时运行的脚本. onmess

HTML5 &lt;template&gt;标签元素简介

一.HTML5 template元素初面 <template>元素,基本上可以确定是2013年才出现的.干嘛用的呢,顾名思意,就是用来声明是"模板元素". 目前,我们在HTML中嵌入模板HTML,往往是类似这样的写法: <script type="text/template"> // ... </script> 实际上,并不存在type="text/template"这样的标准写法,<template&g

HTML5 的知识分享(二):HTML5 的常用标签

经过我的上一篇博客可以让大家简单地了解了一下 HTML5 的基础标签,现在再和大家分享一下 HTML5 的常用标签吧 基础标签与常用标签的主要区别在于:要先有基础标签的基础才可以灵活的使用常用标签. 常用标签主要分为六种: 列表标签 链接标签 表格标签 图像标签 音频标签 视频标签 一.列表标签 (1) <ul> 标签:定义无序列表:要使用样式来定义列表类型. (2) <ol> 标签:定义有序列表:要使用 CSS 来定义列表的类型. (3) <li> 标签:定义列表项目

HTML笔记(二) HTML标签元素

一 常用的头部元素标签 <head>元素包含了所有的头部标签元素. 1.<title> <title>标签定义了HTML文档的标题,在HTML/XHTML文档中是必须的. 主要功能: 定义了浏览器工具栏的标题: 当网页添加到收藏夹时,显示在收藏夹中的标题: 显示在搜索引擎结果页面的标题: 2.<base> <base>标签描述了基本的链接地址或链接目标. 该标签作为HTML文档中所有的链接标签的默认链接,即如果HTML文档中的超链接标签没有添加链

疯狂html5讲义(二):HTML5简的常用元素与属性(一):html5保留的常用元素

html5删除了少量的元素与属性:主要删除了文档样式相关的各种元素与属性,比如<font>.width等,html5规范推荐使用css样式单来控制html文档样式. 1.基本元素 <html>.<head>.<title>.<body>.<style>.<h1>到<h6>.<p>.<br>.<hr>(定义水平线).<div>.<span>~~~ <

疯狂html5讲义(二):HTML5简的常用元素与属性(二):html5新增的通用属性

1.contentEditable属性 true时可直接编辑html元素里面的内容,且具有"可继承"的特点. 编辑后不要刷新页面,否则编辑的内容会丢失,可以通过该元素的innerHtml属性来获取编辑后的内容. 2.designMode属性 此属性相当于一个全局的contentEditable属性 3.hidden属性 可以替代css中的display,hidden=true相当于display:none 4.spellcheck属性 针对于input.textarea等元素,可以对用

HTML5 表单新增元素与属性(二)

标签的control属性:在HTML5中,可以在标签内部放置一个表单元素,并通过该标签的control属性来访问该表单元素. <!DOCTYPE html> <html> <head lang="en"> <title>标签的control属性</title> <meta charset="utf-8"> </head> <body> <script type=&q

html5系列之nop标签

旧标签: (1)<noscript>标签 作用:用来定义在脚本未被执行时的替代内容(文本) 可被用于识别<noscript>标签但无法支持其中的脚本的浏览器 (2)<object>标签 作用:定义一个嵌入的对象,请使用此元素向您的 XHTML 页面添加多媒体.此元素允许您规定插入 HTML 文档中的对象的数据和参数,以及可用来显示和操作数据的代码. <object> 标签用于包含对象,比如图像.音频.视频.Java applets.ActiveX.PDF 以

02.Web大前端时代之:HTML5+CSS3入门系列~H5结构元素

1.结构元素 可以理解为语义话标记,比如:以前这么写<div id="nav"></div> 现在偷懒写:<nav></nav> 1.header 头部区域,包含对主页的介绍 <header> 标签定义文档的页眉(介绍信息) ? 2.nav 导航系列 <nav> 标签定义导航链接的部分. ? 3.section 一块区域 ? <section> 标签定义文档中的节(section.区段).比如章节.页眉