《JavaScript高级程序设计》HTML5 脚本编程(学习笔记C16)

abaqus wcm插件下载_Abaqus随机短纤维增强复合材料建模插件 文末附Abaqus随机短纤维增强复合材料建模插件下载链接前言短纤维增强复合材料相对于长纤维增强复合材料来说更容易制备,且短纤维的填充性能略有改善,可制造复杂产品,广泛应用于车辆、航空航天、建筑等行业,对短纤维增强复合材料进行细观力学分析,可对其宏观力学性能进行预测、分析破坏机理等。接下来对随机短纤维增强复合材料建模插件进行介绍。NO.1 【算法简介】难点一:此插件核心在于判断生成的纤维是... 阅读详情

简介:为了配合HTML5规范定义了很多新的HTML标记,HTML5 用显著篇幅定义了很多JavaScript API。

使用跨文档消息传递

  1. 简称XDM,指的是来自不同域的页面间传递消息。
  2. 核心是postMessage()方法
  3. postMessage(): 向另一个地方传递数据
  4. postMessage(一条消息, 消息接收方来自哪个域的字符串)
  5. 例:
     	var iframeWindow = document.getElementById('myframe').contentWindow
     	
     	iframeWindow.postMessage('A secret', 'http:// www.baidu.com')
    
  6. contentDocument属性能够以HTML对象来返回iframe中的文档,因为返回的是HTML对象,所以可以通过所有标准的DOM方法来处理被返回的对象。
  7. 如果postMessage的第二个参数是“*”,发送的消息可以给任何域。
  8. 接收到XDM消息会触发window对象的message事件,onmessage的处理程序事件对象包含以下三方面信息:
    • data: postMessage()的第一个参数传入的字符串数据
    • origin: 发送信息的文档所在域
    • source: 发送消息的文档的window对象的代理
  9. 发送时:指定postMessage()第二个参数可以确保浏览器不会把消息发送给未知页面
  10. 接收时:onmessage程序中检测消息来源可以确保传入的消息来自已知页面
  11. 例:
    	EventUtil.addHandler(window, 'message', function(event){
    		
    		// 确保发送消息是已知域
    		if(event.origin == 'http://www.wrox.com') {
    			
    			// 处理接收到的数据
    			processMessage(event.data)
    			
    			// 向来源窗口发送回执
    			// 只能通过这个代理对象调用postMessage()
    			// 不能访问到widow对象的其他任何信息
    			event.source.postMessage('Received!', 'http://p2p.wrox.com')
    		}
    	})
    
  12. postMessage()的第一个参数最早只能是字符串,后来部分浏览器支持其他类型。所以如果想传入结构化数据现在发送时调用JSON.stringify(),接收时调用**JSON.parse()**解析。
  13. XDM已经作为一个规范独立出来,现在叫做 Web Messaging 官方页面

原生拖放

  1. 拖放网页元素可以在框架间,窗口间甚至在应用间
  2. 几乎网页中的任何元素都可以作为放置目标
  3. 拖放事件
    拖放某元素时将依次触发下列事件:(这三个事件目标是被拖动的元素)
    • dragstart
    • drag(与mousemove事件类似)
    • dragend
      当元素被拖放到放置目标时触发下列事件:(这些事件的目标是放置目标)
    • dragenter
    • dragover
    • dragleave 或 drop
  4. 自定义放置目标
    通过重写dragenter和dragover事件的默认行为,把任何元素变成有效的放置目标
       var droptarget = document.getElementById('droptarget')
       
       EventUtil.addHandler(droptarget, 'dragover', function(event){
     	  EventUtil.preventDefault(event)
       })
       
       EventUtil.addHandler(droptarget, 'dragenter', function(event){
     	  EventUtil.preventDefault(event)
       })
    
  5. firefox 3.5+中,放置事件的默认行为是打开被放到放置目标上的东西的URL。
    如果把图像拖放到放置目标上,页面会转为图像文件
    如果把文本拖放到放置目标上,会导致无效URL错误
    为解决火狐中的该问题,需取消drop事件默认行为,阻止它打开URL
       EventUtil.addHandler(droptarget, 'drop', function(event)) {
     	  EventUtil.preventDefault(event)
       }
    
  6. dataTransfer对象
    • dataTransfer对象:在拖放操作中实现数据交换
      dataTransfer对象的两个主要方法:setData() getData()
      允许指定各种MIME类型,‘text’被映射为’text/plain’,‘URL’被映射为’text/uri-list’
       // 设置和接受文本数据
       event.dataTransfer.setData('text', 'some text')
       var text = event.dataTransfer.getData('text')
       
       // 设置和接收URL
       event.dataTransfer.setData('URL', 'http://www.wrox.com/')
       var url = event.ataTransfer.getData('URL')
    
    • dataTransfer对象:确定被拖动的元素以及作为放置目标的元素能够接收什么操作
      dataTransfer对象的两个属性:dropEffect effectAllowed
      • dropEffect:必须在ondragenter事件处理程序中针对放置,目标来设置它
      • dropEffect:可以知道被拖动的元素能够执行哪种放置操作
        • none
        • move
        • copy
        • link
      • effectAllowed:必须在ondragstart事件处理程序中设置effectAllowed属性
      • effectAllowed:表示允许拖动元素的哪种dropEffect。dropEffect属性必须搭配effectAllowed属性才有用。
        • uninitialized
        • none
        • copy
        • link
        • move
        • copyLink
        • copyMove
        • linkMove
        • all
    • dataTransfer对象的其他成员:
      • addElement(element):为拖动操作添加一个元素
      • clearData(format):清除以特定格式保存的数据
      • setDragImage(element, x, y):指定一幅图像,当拖动发生时,显示在光标下方
      • types:当前保存的数据类型
  7. 可拖动
    • HTML5为所有HTML元素规定了一个draggable属性表示元素是否可拖动
    • 图像和链接的draggable默认为true,其他元素默认false
    • 可以设置该属性修改默认值
    	<!-- 让该图像不可拖动 -->
    	<img src="smile.gif" draggable="false" alt="Smiley face">
    	
    	<!-- 让该元素可拖动 -->
    	<div draggable="true">...</div>
    
  8. Firefox支持可拖动属性必须添加一个ondragstart事件处理程序,并在dataTransfer对象中保存一些信息

音频与视频

  1. HTML5 新增 并提供了常用JavaScript API

    	<!-- 嵌入视频 -->
    	<video src="conference.mpg" id="myVideo">Video player not available.	</video>
    	
    	<!-- 嵌入音频 -->
    	<audio src="song.mp3" id="myAudio">Audio not available.</audio>
    
  2. 相关属性:

    • src
    • width
    • height
    • poster:加载视频内容期间的展示图像
    • controls:浏览器是否显示UI控件
    • 标签间作为后备内容
  3. 指定多个不同媒体来源以防浏览器不支持该格式

    	<!-- 嵌入视频 -->
    	<video id="myVideo">
    		<source src="conference.webm" type="video/webm; codecs='vp8, vorbis'">
    		<source src="conference.ogv" type="video/ogg; codecs='theora, vorbis'">
    		<source src="conference.mpg">
    		Video player not avaliable
    	</video>
    	
    	<!-- 嵌入音频 -->
    	<audio id="myAudio">
    		<source src="song.ogg" type="audio/ogg">
    		<source src="song.mp3" type="audio/mpeg">
    		Audio player not avaliable
    	</audio>
    
  4. <video>与<audio>共有的属性
    共有属性

  5. 媒体元素相关事件
    属性

  6. 自定义播放器

    
    <div class="mediaplayer">
    	<div class="video">
    		<video 
    		id="player" 
    		src="movie.mov" 
    		poster="mymovie.jpg" 
    		width="300" 
    		height="200">
    			Video player not available
    		</video>
    	</div>
    	<div class="controls">
    		<input type="button" value="Play" id="video-btn">
    		<span id="curtime">0</span>/<span id="duration">0</span>
    	</div>
    </div>
    
    	
    	// 取得各元素的引用
    	var player = document.getElementById('player')
    		btn = document.getElementById('video-btn')
    		curtime = document.getElementById('curtime')
    		duration = document.getElementById('duration')
    		
    	// 更新播放时间
    	duration.innerHTML = player.duration
    	
    	// 为按钮添加事件处理程序
    	EventUtil.addHandler(btn, 'click', function(event){
    		if (player.paused) {
    			player.play()
    			btn.value = 'Pause'
    		} else {
    			player.pause()
    			btn.value = 'Play'
    		}
    	})
    	
    	// 定时更新当前时间
    	setInterval(function() {
    		curtime.innerHTML = player.currentTime
    	}, 250)
    
  7. 检测编解码器的支持情况

    • <video>与<audio>元素都有canPlayType()元素
    • canPlayType(格式/编解码器字符串),返回probably,maybe或’ '。
       var audio = document.getElementById('audio-player')
       
       // 很可能是'maybe'
       if (audio.canPlayType('audio/mpeg')) {
     	  // 进一步处理
       }
       
       // 可能是'probably'
       if (audio.canPlayType('audio/ogg; codes=\"vorbis\"')) {
     	  // 进一步处理
       }
    
    • 已得到支持的音频格式和编解码器
      音频

    • 已得到支持的视频格式和编解码器
      视频

  8. audio构造函数:可以在任何时候播放音频

       var audio = new Audio('sound.mp3')
       EventUtil.addHandler(audio, 'canplaythrough', function(event){
       	audio.play()
       })
    

历史状态管理

问题

  • 什么时候需要用到历史状态管理,用历史状态管理有什么好处
  • 怎么用历史状态管理

内容

  1. 使用hashchange事件 更新history对象为管理历史状态提供方便

  2. 通过hashchange事件可以知道URL的参数发生了什么变化

  3. 状态管理API能够在不加载新页面的情况下改变浏览器的URL

  4. history.pushState(状态对象, 新状态的标题, 可选的相对URL)
    history.pushState({name: "Nicholas"}, "Nicholas's page", "nicholas.html")

    1. 执行 pushState() 方法之后,新的状态信息就会被加入历史状态栈,而浏览器地址栏也会变成新的相对URL
    2. 但是,浏览器并不会真的向服务器发送请求
    3. 即使状态改变之后查询 location.href 也会返回与地址栏中相同的地址
    4. 第二个参数到写书为止还没有浏览器实现,可以传空字符串或一个短标题,第一个参数则因尽可能提供初始化页面状态所需的各种信息
  5. 此时按下“后退”按钮,会触发window对象的popstate事件。popstate事件的事件对象有一个state属性,这个属性就包含着当初以第一个参数传递给pushState()的状态对象

     	EventUtil.addHandler(window, 'popstate', function(event) {
     		var state = event.state
     		// 第一个页面加载时state为空
     		if (state) {
     			processState(state)
     		}
     	})
    
  6. 要更新当前状态,可以调用replaceState().
    调用该方法不会在历史状态栈中创建新状态,只会重写当前状态

     	history.replaceState({name: "Greg"}, "Greg's page")
    
基于Multisim的三相桥式全控整流电路建模、仿真与综合分析 本文基于Multisim 14.2平台,系统研究了三相桥式全控整流电路的建模与仿真方法。首先阐述了电路拓扑结构和工作原理,建立了数学模型。重点介绍了在Multisim中搭建主电路、设计六脉冲触发系统(含两种实现方案)的关键步骤,以及参数设置技巧。通过仿真分析了不同负载(阻性、阻感性)和触发角(0°-90°)下的输出特性,包括电压波形、电流谐波等性能指标。研究为电力电子教学提供了直观的仿真范例,并探讨了模型改进方向与实际工程应用价值。 阅读详情

相关推荐

一起玩转GNU Radio:调制解调大合集

本文汇总了GNU Radio中多种常见的调制解调方法及其参考文献链接,便于今后查看,供大家参考!

无线通信实验室 1万+

JavaScript高级程序设计(红宝石书)学习笔记

阅读JavaScript红宝石书所做笔记

FyWOoOoOoOo的博客 949

操作系统期末大题类型题解

额,OS主要这回考程序分析题,PV操作、生产者消费者啊,哲学家进餐问题,死锁问题啊,如何避免死锁,经典银行家算法,页面置换算法啥的,磁盘调度......总计还有很多,就不一一说了 PV操作 谈到PV操作,首先要了解什么是信号量,其实就是用来解决互斥与同步问题的,分为原语wait(S)和signal(S),也就是我们常说的PV操作,在这里给出王道上的概念 wait(S){ while(S>0) S=S-1; } signal(S){ S=S+1; } 记录型信号量

ZXxxiaoxuan的博客 795

js红宝石 第四章-变量,作用域与内存

ECMAScript变量包含两者不同类型的数据:原始值:最简单的数据引用值:多个值构成的对象JS不允许直接访问内存位置,所以操作对象时,实际上时对该对象的引用而非对象本身。

weixin_60599861的博客 268

卡诺图化简法

目录 1.学前需要了解知识点 2.卡诺图(karnaugh map) 3.逻辑函数的卡诺图化简法 4.总结 1.学前需要了解知识点 最小项的定义 最小项的表示方法 最小项的相邻性 最小项的定义:一个函数的某个乘积项包含了函数的全部变量,其中每个变量都以原变量或反变量的形式出现,且仅出现一次,则这个乘积项称为该函数的一个标准积项,通常称为最小项。 最小项的表示方法:通常用来表...

hahasusu的专栏 17万+

深入解析MOS管电容特性:从基础理论到高频应用

本文深入解析了MOS管的电容特性,从基础物理结构出发,详细拆解了栅氧电容、重叠电容和结电容的成因与影响。文章重点探讨了电容值随工作状态变化的非线性特性,并分析了其在CMOS高频开关电源、射频电路等应用中的关键作用,包括开关损耗、米勒效应、信号完整性挑战以及如何将电容特性转化为可控元件(如MOS变容管)的机遇。最后提供了从选型、仿真到PCB布局的实战设计指南。

weixin_29278805的博客 382

前端之从头开始学《红宝石》

前端之从头开始学《红宝石》 JavaScript 高级程序设计 , 前端界简称为: 红宝石 之书 创作此篇文章的目的呢就是希望和大家伙一起从头将此书捋一遍 , 夯实巩固自己的 JavaScript 基础 , 地基不稳 , 如何建高楼呢 ? 一起加油努力吧 , 毕竟这个行业你要是不卷 , 很容易就会被替代了 。。

Mr.小灰狼_随笔 4603

树莓派上基于ONNXRuntime与Qt的C++模型部署实战指南

本文详细介绍了在树莓派上使用ONNXRuntime与Qt进行C++模型部署的完整流程。从环境配置、依赖安装到交叉编译优化,再到Qt界面集成与ARM架构性能调优,提供了实战指南和常见问题解决方案,帮助开发者高效完成边缘设备上的AI应用部署。

ik6789012的博客 339

JavaScript入门篇(红宝书第四版+犀牛书权威指南)一

对于前端开发者来说,《JavaScript高级程序设计》(俗称红宝书)和《JavaScript权威指南》肯定是两本封神之作,也是每一个前端工程师的必学经典。我们今天就一起跟着这两本书一起进入JavaScript(以后简称JS)的世界。 什么是JS?很多人只知道它是一门脚本语言,但是具体来说,JS由三部分组成。 ECMAScript核心 文档对线模型DOM 浏览器对象模型BOM ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,Europe...

showmymind的博客 3684

torch.jit.script 与 torch.jit.trace

它们是 PyTorch 的即时编译(Just-in-Time Compilation)模块的一部分,用于提高模型的执行效率并支持模型的部署。方法只跟踪了给定输入张量的执行路径,因此在使用转换后的模块对象进行推理时,输入张量的维度和数据类型必须与跟踪时使用的相同。跟踪模型可以看作是一个具有相同功能的脚本模型,但它还保留了原始模型的动态特性,可以使用更多高级特性,如动态图和控制流。它接受一个模型和一个示例输入,并记录模型在给定输入上的执行过程,然后返回一个跟踪模型。的模型文件,并将其转换为评估模式。

leoatliang的博客 1万+

对于基本的捕鱼游戏设计思路(五)——鱼

今天讲捕鱼游戏里鱼的部分,也是比较关键的一部分。 一步一步来,先分析游戏,首先鱼是从屏幕外生成,然后它有个移动的动作,而且分为不同的类型。 然后就可以进入代码部分,首先设置一个计时器,控制时间生成鱼,而鱼分种类,所以就用到随机函数,随机输出一个值,传入switch语句,从而生成不同的鱼。 void GameScene::xiaoyuupdate(float dt){ Size visibl

Cineze的博客 1万+

JavaScript红宝书、犀牛书(2本)简介

目录 红宝书 书名与作者 内容overview 封面 大犀牛书 书名与作者 内容overview 封面 小犀牛书 书名与作者 内容overview 封面 红宝书 书名与作者 《JavaScript高级程序设计》 Matt Frisbie著 李松峰译 内容overview 注:第四版 本书从JavaScript的起源开始,逐步讲解到今天的最新技术。书中详尽讨论了JavaScript的各个方面,重点介绍ECMAScript和DOM标准。 在此基础上,接下来的各章揭示了Jav

行步至春深 1万+

PLC凸轮开关指令编程应用——控制算法

凸轮开关指令的作用是在PLC程序中根据凸轮开关(Cam Switch)的状态执行不同的操作。凸轮开关通常是机械式的开关装置,它的位置会随着机械运动的变化而改变。凸轮开关的状态可以用来检测机器的位置、角度或其他相关信息,从而触发相应的控制动作。总结起来,凸轮开关指令是PLC编程中常用的一种控制算法,通过检测凸轮开关的状态来触发相应的操作。本文将介绍凸轮开关指令的应用和相应的控制算法,并提供相关的源代码示例。在这个示例中,凸轮开关状态的值代表不同的位置,根据凸轮开关状态的不同,执行相应的动作。

LiJavascript的博客 1035

计算机二级html真题,计算机二级《Web程序设计》试题及答案

计算机二级《Web程序设计》试题及答案1在下列的HTML中,正确产生超链接的标记是(  )。A.新浪网B.新浪网C.http:///WWW.sina.Corn.cnD.新浪网参考答案:B2下面协议中用于在Web浏览器和服务器之间传输Web文档的是(  )。A.NFSB.FTPC.HTTPD.DNS参考答案:C3在HTTP响应的MIME消息体中,可以同时包含如下类型的数据(  )。i .文本数据 i...

weixin_34496367的博客 1808

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

大学生HTML期末大作业——HTML+CSS+JavaScript美食网站

HTML+CSS+JS【美食网站】网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计

... 3825

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

HTML5、CSS、JS基础

学习笔记

qq_49101841的博客 2858

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

计算机高级程序开发,2017计算机javascript高级程序设计简介

2017计算机javascript高级程序设计简介在JavaScript面世之初,没有人会想到它会被应用的如此广泛,也远比一般人想象中的要复杂强大的多。下面小编整理的关于计算机javascript高级程序设计,欢迎大家阅读!JavaScript程序设计《JavaScript程序设计》作为JavaScript相关课程的教材,系统地介绍了JavaScript开发所涉及的各类知识。全书内容包括JavaS...

weixin_34378126的博客 1270

Google 编程风格:C++、Python、JavaScript、Shell、TypeScript

Google 编程风格:C++、Python、JavaScript、Shell、TypeScript

freeking101的博客 5万+

HTML5+CSS3

HTML 1. 浏览器内核 五大浏览器四大内核 浏览器:IE(edge), 火狐, Safari, chrome, Opera 内核: Trident, Gecko, webkit, chromium/Blink, blink 注1: 提到Chrome浏览器,一般人会认为使用的Webkit内核(移动设备多),这种说法不完全确。Chrome发布于2008年,使用的渲染内核是Chromium...

qq_38620301的博客 2万+

html5页面输出语句,html5 javascript 输出信

html5 javascript 输出信[2021-02-04 00:47:07]简介:php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐:《PHP视频教近年来,互联网的快速发展,Web前端领域的HTML5...

weixin_33917474的博客 667

大学生HTML期末大作业——HTML+CSS+JavaScript王者荣耀

HTML+CSS+JS【游戏网站】网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计

... 2万+

JavaScript高级程序设计(第3版)

JavaScript高级程序设计(第3版)   编辑推荐   一幅浓墨重彩的语言画卷,一部推陈出新的技术名著  全能前端人员必读之经典,全面知识更新必备之佳作   基本信息 原书名: Professional JavaScript for Web Developers,3rd Edition 原出版社: Wrox 作者: (美)Nicholas C.Zakas ...

china-pub网上书店 317

js权威指南有必要买吗,《javascript权威指南》

JavaScript权威指南》全面介绍了JavaScript语言的核心,以及Web浏览器中实现的遗留和标准的DOM。本书还包括详细的参考手册,涵盖了JavaScript的核心API、遗留的客户端API和W3C标准DOM API,记述了这些API中的每一个JavaScript对象、方法、性质、构造函数、常量和事件处理程序。这本最畅销的JavaScript参考书的第四版已经进行了全面的更新,其中涵盖JavaScript 1.5(ECMAScript Version 3)的详细介绍。

阿发狗伪原创 186

NocoBase UUID 字段详解:唯一标识自动生成机制与跨系统同步配置实战

在 NocoBase 中,UUID 字段用于为记录生成通用唯一标识,是外部系统同步、公开接口标识、导入导出等场景的核心选型。本文基于 NocoBase 官方文档与开源仓库源码,完整讲解 UUID 字段的创建配置、字段特性、编辑与删除规则、页面配置用法,并结合 [uuid-field.ts](https://link.gitcode.com/i/3f5902b5aa9387d6b48fec6d58c

gitblog_00528的博客 992

大学生HTML期末大作业——HTML+CSS+JavaScript培训机构(英语教育)

HTML+CSS+JS【培训机构】网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计

... 4453

Demucs 实战指南:基于 SDX23 挑战赛数据集训练 Hybrid Demucs 模型(从数据准备到参赛提交)

本文围绕 Demucs 仓库中的 [docs/sdx23.md](https://link.gitcode.com/i/dd35cbd9670b50009c6679e20a2ff4c1) 展开,完整介绍如何为 Sound Demixing Challenge 2023(SDX23)的 MDX'23 子挑战准备数据、训练 Hybrid Demucs(HDemucs)模型、导出权重并提交到比赛。读完本

gitblog_00259的博客 1025
上一篇: 《JavaScript高级程序设计》引用类型(学习笔记C05)
下一篇: 《数据结构与算法JavaScript描述》列表(学习笔记C03)
magic-fish
博客等级 码龄9年 3粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值