亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

js高級程序設計筆記11--HTML5腳本編程

2024-04-27 15:17:30
字體:
來源:轉載
供稿:網友

跨文檔消息傳遞

指的是來自不同域的頁面間傳遞消息。 postMessage():2個參數,一條消息和一個表示消息接收方來自哪個域的字符串。第二個參數是保障通信安全。

var iframeWindow = document.getElementById('myframe').contentWindow;iframeWindow.postMessage("a secret","http://www.wrox.com");//向內嵌框架發送一條消息

如果框架中的文檔不是來源于指定的域則postMessage()什么也不做。接收到XDM消息時,會觸發window對象的message事件。傳遞給onmessage處理程序的事件對象有3個屬性: 1. data:postMessage()的第一個參數,即發送的消息。 2. origin:發送消息的文檔所在的域。 3. source:發送消息的文檔的window對象的代理。不能通過此對象訪問window對象的其他任何信息。

EventUitl.addHandler(window,"message",function(event)){ if(event.origin == "http://www.wrox.com"){ PRocessMessage(event.data); event.source.postMessage("received","http://p2p.wrox.com"); }}

原生拖放

拖放事件

拖動某元素時,將依次觸發下列事件: 1. dragstart 2. drag 3. dragend 當某個元素被拖動到一個有效的放置目標上時,下列事件會依次發生: 1. dragenter 2. dragover 3. dragleave或drop

自定義放置目標

可以把任何元素變成有效的放置目標。方法是重寫dragenter和dragover事件的默認行為。

EventUitl.addHandler(droptarget,"dragover",function(event)){ EventUtil.preventDefault(event);}EventUitl.addHandler(droptarget,"dragenter",function(event)){ EventUtil.preventDefault(event);}

Firefox3.5+中,放置事件的默認行為是打開被放到放置目標上的URL。因此如果是把文本拖放到放置目標上,則會導致無效URL錯誤。因此要取消drop事件的默認行為。阻止它打開URL。

EventUitl.addHandler(droptarget,"drop",function(event)){ EventUtil.preventDefault(event);}

dataTransfer對象

它是事件對象的一個屬性,用于從被拖動元素向放置目標傳遞字符串格式的數據。 有兩個主要方法: getData():傳入一個參數,表示要保存的數據類型。IE只定義了“text”和”URL“兩種有效的數據類型。HTML5則允許各種MIME類型。 setData():2個參數,第一個參數為

event.dataTransfer.setData("text","some text");var text = event.dataTransfer.getData("text");event.dataTransfer.setData("URL","http://www.wrox.com");var url = event.dataTransfer.getData("URL");

在拖動元素時瀏覽器會自動調用setData()方法把對應的數據保存在dataTransfer對象中,這些元素被放置在目標上時就可以通過getData()方法讀到這些數據。 注:Firefox在其第5個版本之前不能正確的將“url”和”text”映射為”text/uri-list”和“text/plain”,但能把”Text”映射為”text/plain”。

var url = dataTransfer.getData("url") || dataTransfer.getData("text/uri-list");var text = dataTransfer.getData("Text");

dropEffect與effectAllowed

dataTransfer對象還有兩個屬性:dropEffect與effectAllowed。 dropEffect可以知道被拖動的元素能夠執行哪種放置行為。有以下取值:

“none”:不能把拖動的元素放在這里。這是除文本框之外所有元素的默認值。 “move”:應該把拖動的元素移動到放置目標。 “copy”:應該把拖動的元素復制到放置目標。 “link”:表示放置目標會打開拖動的元素。

要使用dropEffect屬性,必須在ondragenter事件中針對放置目標來設置他。并且它只有搭配effectAllowed屬性才有用。 effectAllowed屬性表示允許拖動元素的哪種dropEffect。取值:

uninitialized:沒有給拖動元素設置任何放置行為。 none:被拖動的元素不能有任何的行為。 copy:只允許值為copy的dropEffect. link:只允許值為link的dropEffect. move:只允許值為move的dropEffect. copyLink: copyMove: linkMove: all:允許任何dropEffect.

必須在ondragstart事件中設置effectAllowed屬性。

可拖動

默認情況下,圖像,鏈接和文本都是可以拖動的。文本只有在選中的情況下才可以被拖動。HTML5為所有元素規定了一個draggable屬性。設置這個屬性可以改變元素的可拖動屬性。

//讓圖像不能被拖動<img src="smile.gif" draggable="false">//讓這個元素可以拖動<div draggable="true">...</div>

另外為了讓Firefox支持可拖動屬性,必須添加一個ondragstart事件處理程序。并在dataTransfer對象總保存一些信息。

dataTransfer還有一個setDragImage(element,x,y)方法:指定一幅圖像,當拖動發生時,顯示在光標下方。參數分別為:Hmtl元素和光標在圖像中的x,y坐標。

媒體元素

HTML5新增了兩個標簽和

<video src="conference.mpg" id="muvideo">video palyer not available</video><audio src="song.mp3" id="myAudio">audio player not available</audio>

還可以指定widht和height屬性指定視頻播放器大小。poster屬性指定圖像的URI可以在加載視頻內容期間顯示一幅圖像。controls屬性瀏覽器會顯示UI控件。 并非所有瀏覽器都支持所有媒體格式。所以可以指定多個不通的媒體來源。

<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 palyer not available</video>

屬性(自行查閱)

事件 (自行查閱)

自定義媒體播放器

使用和元素的play()和pause()方法,可以手工控制媒體文件的播放。組合使用屬性,事件就可以創建自定義的媒體播放器。

<div class="mediaplayer"> <div class="video"> <video id="palyer" src="movie.mov" poster="mymovie.jpg" width="200" 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>//js代碼var player = document.getElementById("player"), btn = document.getElementById("btn"), curtime = document.getElementById("curtime"), duration = document.getElementById("duration");//更新播放時間duration.innerHTML = palyer.duration;EventUtil.addHandler(btn,"click",function(event)){ if(player.paused){ player.play(); btn.value = "pause"; }else{ player.pause(); player.value = "play"; }}//定時更新當前時間setInverval(function(){ curtime.innerHTML = player.currentTime;},250);

檢測編碼器的支持情況

canPlayType():接收一個參數,一種格式/編解碼器字符創

if(audio.canPlayType("audio/mpeg"))

歷史狀態管理

HTML5通過更新history對象為管理歷史狀態提供了方便。 通過haschange事件,可以知道URL的參數什么時候發生了變化。而通過狀態管理API可以在不加載頁面的情況下改變瀏覽器的URL。需要使用history.pushState()方法,該方法可以接受三個參數:狀態對象,新狀態的標題和可選的相對URL。

history.pushState({name:"Nicholas"},"nichosla page","haha.html");

執行此方法,新的狀態信息就會被加入歷史狀態棧,瀏覽器地址欄也會變成新的相對URL。但是瀏覽器并不會真的向服務器發送請求。第二個參數目前還沒有瀏覽器實現。傳入空字符串即可。按下后退按鈕后就可以觸發window對象的popState事件。該對象的一個state屬性就是pushState()的第一個參數。 要更新當前狀態,可以是使用replaceState(),傳入的參數與pushState的前兩個參數相同。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性生交xxxxx久久久| 91影院在线免费观看视频| 尤物九九久久国产精品的分类| 久久精品2019中文字幕| 日本欧美在线视频| 日韩成人在线视频网站| 91香蕉嫩草神马影院在线观看| 亚洲第一免费播放区| 欧美日韩亚洲视频| 亚洲精品视频在线观看视频| 91精品在线国产| 久久免费少妇高潮久久精品99| 日韩av片免费在线观看| 777精品视频| 尤物九九久久国产精品的分类| 日本国产高清不卡| 欧美亚洲激情视频| 亚洲伊人一本大道中文字幕| 国产精品91久久久久久| 精品国产一区二区三区久久久狼| 在线看福利67194| 亚洲影院污污.| 国产极品jizzhd欧美| 亚洲女人天堂成人av在线| 国产亚洲精品综合一区91| 亚洲欧美日韩在线高清直播| 国产免费观看久久黄| 91人人爽人人爽人人精88v| 国产成人综合av| 最新国产成人av网站网址麻豆| 夜夜嗨av一区二区三区免费区| 久久av红桃一区二区小说| 中日韩午夜理伦电影免费| 久久精品亚洲国产| 成人在线精品视频| 丝袜情趣国产精品| 日韩av免费看网站| 亚洲电影中文字幕| 亚洲成人精品视频| 国产精品久久久久久久久久久久久久| 九九精品视频在线观看| 日本高清视频精品| 最近2019中文字幕mv免费看| 日韩av影片在线观看| 成人免费网站在线看| 国产精品人人做人人爽| 狠狠做深爱婷婷久久综合一区| 国产免费亚洲高清| 欧美成人午夜激情在线| 亚洲成人国产精品| 欧美日韩国产一中文字不卡| 精品女厕一区二区三区| 亚洲欧美日韩一区二区在线| 欧美第一黄色网| 国产亚洲在线播放| 俺也去精品视频在线观看| 日韩精品免费一线在线观看| 热久久这里只有精品| 国产精自产拍久久久久久蜜| 九九久久久久久久久激情| 久久久精品在线观看| 国产精品嫩草影院久久久| 伊人激情综合网| 51色欧美片视频在线观看| 精品亚洲男同gayvideo网站| 九九精品视频在线| 欧美自拍视频在线观看| 久久精品人人做人人爽| 91国在线精品国内播放| 国产男人精品视频| 成人黄色在线播放| 精品久久久久久中文字幕大豆网| 韩国欧美亚洲国产| 91av在线免费观看视频| 成人欧美一区二区三区在线| 国产做受69高潮| 韩国视频理论视频久久| 欧美日韩国产影院| 精品网站999www| 亚洲最大在线视频| 国产精品亚洲美女av网站| 久久九九亚洲综合| 亚洲夜晚福利在线观看| 午夜精品久久久久久久白皮肤| 欧美精品18videos性欧| 久久久久久久一区二区| 久久在精品线影院精品国产| 日本中文字幕不卡免费| 庆余年2免费日韩剧观看大牛| 国产精品网红直播| 久久久在线视频| 欧美激情久久久久久| 国产精品入口日韩视频大尺度| 欧美黄色免费网站| 91精品国产91久久久久久久久| 精品性高朝久久久久久久| 亚洲福利影片在线| 在线成人激情视频| 色妞欧美日韩在线| 黑人与娇小精品av专区| 日韩中文字幕欧美| 日韩欧美在线一区| 欧美在线一区二区视频| 视频在线观看一区二区| 久久精品99国产精品酒店日本| 国产福利精品av综合导导航| 欧美日韩免费在线观看| 亚洲电影免费观看高清完整版| 色av中文字幕一区| 亚洲高清不卡av| 懂色av一区二区三区| 国产成人精品视频| 亚洲成人精品视频在线观看| 国产亚洲视频在线| 色哟哟亚洲精品一区二区| 久久综合久久88| 日韩精品中文字幕视频在线| 国产亚洲欧美另类中文| 久久国产精品亚洲| 日韩欧美国产高清91| 日韩在线观看免费网站| 热re99久久精品国产66热| 国产一区二区丝袜| 欧美亚洲日本黄色| 国产91色在线| 国产精选久久久久久| 国产一区二区丝袜| 亚洲第一天堂无码专区| 日韩成人在线视频观看| 久久视频在线直播| 91九色蝌蚪国产| 精品成人69xx.xyz| 久久久久久国产精品久久| 日韩有码视频在线| www.久久草.com| 亚洲欧美色婷婷| 久久精品99久久久香蕉| 欧美一区亚洲一区| 欧美一级视频在线观看| 色久欧美在线视频观看| 中文字幕亚洲二区| 欧美巨大黑人极品精男| 国产精品香蕉av| 欧美第一黄色网| 欧洲精品毛片网站| 日本不卡免费高清视频| 精品视频偷偷看在线观看| 久久久国产影院| 国产精品6699| 国产美女精品视频免费观看| 欧美成人午夜剧场免费观看| 日韩hd视频在线观看| 国产精品入口日韩视频大尺度| 亚洲国产精品人人爽夜夜爽| 欧美日韩国产一区中文午夜| 国产日韩欧美在线视频观看| 亚洲福利在线看| 久久在线观看视频| 中文字幕无线精品亚洲乱码一区| 欧美大胆在线视频| 亚洲国产成人在线播放| 91在线观看欧美日韩| 一区二区三区视频免费在线观看| 国产精品久久久久91|