object元素
object这个元素,现在前端很少用到,但是像flash,svg等奇葩元素,必须嵌套在object对象元素中。现代浏览器用video,canvas代替这些元素。
之前做过图表和地图的一些应用,像highchart,e-chart,这些图表插件,基本上是使用svg元素(嵌套在object元素中)生成的,可见它的作用还是不容忽视的。IE7以及以下版本浏览器使用的是vml。
在HTML5的video标签出来之前,我们基本上是通过object,embed,applet这三个标签来加载视频或其他多媒体资源的。
applet基本上被淘汰了,我在上学期间,研究的项目中,就用applet来截屏实现屏幕共享的功能。这个applet是java的东西,跨平台。好像是因为安全性问题,加上速度慢,消耗资源大,慢慢就被淘汰了。
如果你只是想插入flash视频,不进行js交互,embed标签就足矣。embed标签现在已经变成HTML5规范了。<embed> 标签定义嵌入的内容,比如插件。
embed元素用于在html文档中插入符合网景插件应用程序编程接口规范的插件。大家都知道当时的IE牛B的很,可不会使用别人的规范,他要的是垄断,因此,使用ActiveX替代了网景插件应用程序编程接口规范。ActiveX主要的技术是组件对象模型(COM),使用object标签加载COM组件。大家都知道IE7以及以下版本的ajax对象使用的就是COM组件。由于IE7以及以下版本的垃圾回收机制使用的是引用机制,所以很容易造成内存泄露。为了加载COM,微软为objec标签添加了两个属性:classid和codebase。
主流的浏览器,包括IE都支持object,embed标签,只是每个浏览器支持的程度不一样,支持的功能不一样。因此在写兼容性的其他资源或者插件嵌入时,支持object的就使用object嵌入,不支持的就使用embed嵌入。
classid就是这个com组件在系统中注册的一个ID值,有了这个ID值系统才能找到这个COM组件对应的DLL文件。
codebase是一个url,用来下载和更新组件用的。比如,浏览某个网页时, 发现你的机器上没有安装这个组件,IE(有些浏览器不支持这个功能,需要手动下载)就会去codebase指示的这个url下载组件,有了新版本也会提示你安装新版本。
object使用有几个要注意的点:
(1)它必须使用innerHTML或document.write()等手段动态创建。通过document.createElement这个标准API创建,无法加载我们的资源。
(2)创建param(object的子元素,用来加载资源的,object是整个的父元素,相当于html)时,必须指定name属性,否则param创建不成功。
比如:div.innerHTML = "<object><param></object>";alert(div.innerHTML) // <OBJECT></OBJECT>
div.innerHTML = "<object><param name=test></object>";alert(div.innerHTML) // <OBJECT><PARAM NAME="test" VALUE=""></OBJECT>
(3)IE8以及以下版本浏览器用getElementsByTagName("*"),无法取到param元素。只能通过getElementsByTagName("param")
(4)在Chrome中,如果object元素前面有一个元素有background-image样式,则该object不显示,刷新几次会出现该现象。可以用embed标签代替object解决。
(5)IE下的object标签的onerror事件没什么用,即便加载错误,它还是会触发onload回调。
video元素
video与canvas是HTML5中最重要的两个标签,它打破了Flash对视频与图形处理的垄断。由于苹果公司的ios平台iphone不支持Flash,因此HTML5发展的更快了。
HTML5引入一个视频:
<video src="my.mp4" controls autoplay width="300" height="210"></video>
因为我们的视频存在各种各样的格式,如avi,rm,rmvb,mp4等,就需要对应不同的解码器来处理。每个浏览器自带的解码器不一样,所以每个浏览器支持的视频格式不一样。为了实现代码的可兼容性,引入了source标签,用它来链接不同的格式的视频文件。
比如:
<video id="video" controls preload="none" poster="http://poster.png">
<source id="mp4" src="http://trailer.mp4" type="video/mp4">
<source id="webm" src="http://trailer.webm" type="video/webm">
<p>your user agent does not support the HTML5 video element.</p>
</video>
浏览器会自行监测支持哪种视频格式的解码器,然后相应的播放,如果都不支持,将会显示p元素里面的字。
此外,视频上面的字幕,我们可以用trace标签实现,因此HTML5视频播放,实际使用的标签不止一个。
由于IE6-IE8不支持video,因此还需要object标签加载flash播放器。
vidoe标签里面有很多属性,我主要讲一下几个不常见的:
poster:用户指定一张图片,比如预览图。在当前视频正在加载或者视频地址错误时,显示。
preload:有三个选值:auto,当页面加载后,载入整个视频。metadata,当页面加载后,载入元数据(视频的总长度,第一帧画面)。none,当页面加载后,不载入视频。假如你指定了autoplay属性,就会忽略此属性,因为autoplay属性,会让浏览器当页面加载后,就会播放视频。
crossorigin:如果视频文件是在不同域获得服务,就涉及到跨域问题。此属性可以播放跨域的资源。video,audio,img都可以跨域播放。
canPlayType方法:检测浏览器是否支持此种视频类型。它并不返回boolean,而是返回以下三种值:probably,浏览器确认支持你传入的视频格式。maybe,浏览器或者支持你的视频格式。""空字符串,你的浏览器确认不能支持你传入的视频格式。
oahkv.xqblac.cn
cjeyj.xqblac.cnceyqu.xqblac.cn
nduml.xqblac.cn
uwkxx.xqblac.cn
bwrnn.xqblac.cn
klnfm.xqblac.cn
nhyvc.xqblac.cn
cbrrj.xqblac.cn
bxqaa.xqblac.cn
gasbb.xqblac.cn
zyjxt.xqblac.cn
xypew.xqblac.cn
pvtep.xqblac.cn
mzvkc.xqblac.cn
pocyy.xqblac.cn
izjgu.xqblac.cn
pjubs.xqblac.cn
zfuvj.xqblac.cn
pntkg.xqblac.cn
fwfte.xqblac.cn
mtszv.xqblac.cn
uhfsz.xqblac.cn
acfil.xqblac.cn
ejila.xqblac.cn
qfebb.xqblac.cn
wfsoc.xqblac.cn
ifkkv.xqblac.cn
zadiw.xqblac.cn
weqtl.xqblac.cn
clkjy.xqblac.cn
tafcj.xqblac.cn
qtdss.xqblac.cn
suocj.xqblac.cn
ezqzd.xqblac.cn
kpnub.xqblac.cn
zrbxx.xqblac.cn
tsyzv.xqblac.cn
avlho.xqblac.cn
nsxil.xqblac.cn
ioypt.xqblac.cn
cuahd.xqblac.cn
onpss.xqblac.cn
bouee.xqblac.cn
oxplw.xqblac.cn
foqip.xqblac.cn
gjhum.xqblac.cn
vgovy.xqblac.cn
bwknf.xqblac.cn
eyjkr.xqblac.cn
aiwwh.xqblac.cn
ruawd.xqblac.cn
cfwbb.xqblac.cn
xcitl.xqblac.cn
cnsgc.xqblac.cn
waxvr.xqblac.cn
brryn.xqblac.cn
ogkgu.xqblac.cn
usopt.xqblac.cn
fvihs.xqblac.cn
rxixp.xqblac.cn
cquma.xqblac.cn
thvyy.xqblac.cn
dkffq.xqblac.cn
yjimi.xqblac.cn
msqmt.xqblac.cn
wvnlp.xqblac.cn
vzjcg.xqblac.cn
rtyxx.xqblac.cn
mavvn.xqblac.cn
mnmcj.xqblac.cn
rvruf.xqblac.cn
urqbp.xqblac.cn
tqmog.xqblac.cn
xsorg.xqblac.cn
rkrww.xqblac.cn
nvutl.xqblac.cn
hjvcj.xqblac.cn
crccj.xqblac.cn
wjipl.xqblac.cn
klcnq.xqblac.cn
jbjit.xqblac.cn
qbzdk.xqblac.cn
dvnqq.xqblac.cn
fdvvg.xqblac.cn
lsjbm.xqblac.cn
goakv.xqblac.cn
uakcn.xqblac.cn
tjinc.xqblac.cn
liyxt.xqblac.cn
aeqie.xqblac.cn
juews.xqblac.cn
uborc.xqblac.cn
mahss.xqblac.cn
mtrhv.xqblac.cn
kimip.xqblac.cn
fdxte.xqblac.cn
nkkap.xqblac.cn
apwsk.xqblac.cn
gpkcn.xqblac.cn
atkds.xqblac.cn
gjbei.xqblac.cn
ethzo.xqblac.cn
bkstp.xqblac.cn
lqvcc.xqblac.cn
lozcn.xqblac.cn
uozaw.xqblac.cn
igtsd.xqblac.cn
rqtlh.xqblac.cn
suhxm.xqblac.cn
jgewk.xqblac.cn
dgskg.xqblac.cn
tfdww.xqblac.cn
cyxte.xqblac.cn
dxvny.xqblac.cn
hukls.xqblac.cn
yjapw.xqblac.cn
ihoyu.xqblac.cn
sypmm.xqblac.cn
srxia.xqblac.cn
mlodg.xqblac.cn
kfcjb.xqblac.cn
fviip.xqblac.cn
sxvnu.xqblac.cn
ebqgj.xqblac.cn
ikiwd.xqblac.cn
svsos.xqblac.cn
rixoz.xqblac.cn
qanbt.xqblac.cn
gofqe.xqblac.cn
onhtw.xqblac.cn
kvdvc.xqblac.cn
kvazv.xqblac.cn
mlywh.xqblac.cn
bgtsd.xqblac.cn
cbyfj.xqblac.cn
ulwel.xqblac.cn
drhzg.xqblac.cn
tlmta.xqblac.cn
hzygg.xqblac.cn
xpjxe.xqblac.cn
kmxtw.xqblac.cn
vxaim.xqblac.cn
qagyx.xqblac.cn
xfgjn.xqblac.cn
spgwo.xqblac.cn
pzbxx.xqblac.cn
vtkrn.xqblac.cn
hqifu.xqblac.cn
eyocn.xqblac.cn
alkrn.xqblac.cn
wjaip.xqblac.cn
dopls.xqblac.cn
vjesr.xqblac.cn
ugxmx.xqblac.cn
znnbt.xqblac.cn
olrjy.xqblac.cn
izugr.xqblac.cn
mecui.xqblac.cn
nniss.xqblac.cn
tapfi.xqblac.cn
ahtaz.xqblac.cn
ysbip.xqblac.cn
ekfny.xqblac.cn
pixtw.xqblac.cn
rsnft.xqblac.cn
qqnzo.xqblac.cn
iqvyj.xqblac.cn
hqyjq.xqblac.cn
dtpub.xqblac.cn
mehzn.xqblac.cn
wzxel.xqblac.cn
bsndk.xqblac.cn
yavnj.xqblac.cn
zqszr.xqblac.cn
arzea.xqblac.cn
rgcyj.xqblac.cn
mqnvg.xqblac.cn
qokew.xqblac.cn
okyuf.xqblac.cn
ftkuj.xqblac.cn
byama.xqblac.cn
tdszg.xqblac.cn
qgqpp.xqblac.cn
ewafj.xqblac.cn
sxnbf.xqblac.cn
fvfep.xqblac.cn
itykr.xqblac.cn
ijogr.xqblac.cn
mwaok.xqblac.cn
gfkwd.xqblac.cn
wlcbi.xqblac.cn
mmorg.xqblac.cn
evokr.xqblac.cn
rascn.xqblac.cn
bobep.xqblac.cn
pcill.xqblac.cn
ufmia.xqblac.cn
dmiea.xqblac.cn
smndv.xqblac.cn
tocjq.xqblac.cn
ldlwk.xqblac.cn
zjxit.xqblac.cn
xxnqq.xqblac.cn
sizcu.xqblac.cn
ooqrn.xqblac.cn
yyawz.xqblac.cn
wrpho.xqblac.cn
wxxyu.xqblac.cn
bicnf.xqblac.cn
ejwhg.xqblac.cn
juluq.xqblac.cn
nvovj.xqblac.cn
xkpdo.xqblac.cn
gmijq.xqblac.cn
kxokk.xqblac.cn
znldh.xqblac.cn
uupkc.xqblac.cn
esitp.xqblac.cn
eupas.xqblac.cn
xgifj.xqblac.cn
batov.xqblac.cn
nfqbb.xqblac.cn
ljbzk.xqblac.cn
dwnnf.xqblac.cn
ayxhh.xqblac.cn
sflmp.xqblac.cn
kvwkk.xqblac.cn
sxzcy.xqblac.cn
apyog.xqblac.cn
xyqmq.xqblac.cn
hjryn.xqblac.cn
iwgos.xqblac.cn
lntpw.xqblac.cn
xzbel.xqblac.cn
gujbb.xqblac.cn
ihass.xqblac.cn
pcfbe.xqblac.cn
tbagn.xqblac.cn
muskr.xqblac.cn
dhjqe.xqblac.cn
mmfcy.xqblac.cn
jhyfu.xqblac.cn
etupp.xqblac.cn
vuedo.xqblac.cn
fmgqi.xqblac.cn
nhjuf.xqblac.cn
rjwit.xqblac.cn
kdrui.xqblac.cn
srwvr.xqblac.cn
zubvz.xqblac.cn
yifbm.xqblac.cn
okruq.xqblac.cn
aqpfq.xqblac.cn
rpqma.xqblac.cn
bvyip.xqblac.cn
vbpqb.xqblac.cn
rizjf.xqblac.cn
eqepl.xqblac.cn
mxiuf.xqblac.cn
pkpho.xqblac.cn
duahk.xqblac.cn
whcww.xqblac.cn
afhdr.xqblac.cn
owknc.xqblac.cn
zzckv.xqblac.cn
ftula.xqblac.cn
tbvyu.xqblac.cn
kcyvn.xqblac.cn
vciss.xqblac.cn
hywvc.xqblac.cn
dfipt.xqblac.cn
wpwvn.xqblac.cn
quadh.xqblac.cn
yknvc.xqblac.cn
cuskn.xqblac.cn
obdgn.xqblac.cn
efdal.xqblac.cn
udymp.xqblac.cn
nqvcy.xqblac.cn
dhroo.xqblac.cn
npocj.xqblac.cn
wvhzr.xqblac.cn
qxrhs.xqblac.cn
cwmkg.xqblac.cn
pbldo.xqblac.cn
pdyvn.xqblac.cn
lxwzd.xqblac.cn
kstpp.xqblac.cn
vuxit.xqblac.cn
iydpa.xqblac.cn
jdrrc.xqblac.cn
oebgq.xqblac.cn
mkwsv.xqblac.cn
wjjqq.xqblac.cn
yishv.xqblac.cn
tgmex.xqblac.cn
yezkv.xqblac.cn
ljeyj.xqblac.cn
ybkuy.xqblac.cn
ijjfm.xqblac.cn
attfb.xqblac.cn
vsuxe.xqblac.cn
pzuju.xqblac.cn
nbedz.xqblac.cn
jjxaw.xqblac.cn
yqfko.xqblac.cn
hhrdd.xqblac.cn
zriit.xqblac.cn
cwomx.xqblac.cn
vvafb.xqblac.cn
pzujq.xqblac.cn
xzmah.xqblac.cn
zhzhw.xqblac.cn
dxsrg.xqblac.cn
aveah.xqblac.cn
tougg.xqblac.cn
ryxxa.xqblac.cn
iozvv.xqblac.cn
wdnim.xqblac.cn
mzmit.xqblac.cn
qajbf.xqblac.cn
qjpmt.xqblac.cn
wnhwd.xqblac.cn
macym.xqblac.cn
kxxjm.xqblac.cn
bnufx.xqblac.cn
itqme.xqblac.cn
shlqb.xqblac.cn
ghqxw.xqblac.cn
kdjfq.xqblac.cn
xdxlo.xqblac.cn
hvhww.xqblac.cn
kkmea.xqblac.cn
fyxcc.xqblac.cn
stonu.xqblac.cn
ugxhd.xqblac.cn
bmogn.xqblac.cn
hgujf.xqblac.cn
ntkny.xqblac.cn
justh.xqblac.cn
zjpld.xqblac.cn
jbazk.xqblac.cn
jbqtl.xqblac.cn
ljgyj.xqblac.cn
plnub.xqblac.cn
bsiqu.xqblac.cn
rwxph.xqblac.cn
vbvcy.xqblac.cn
vbefe.xqblac.cn
qzmit.xqblac.cn
fbogr.xqblac.cn
miaep.xqblac.cn
hmwoz.xqblac.cn
qqdvk.xqblac.cn
hdfvc.xqblac.cn
daufx.xqblac.cn
ovmal.xqblac.cn
bxljq.xqblac.cn
krmpp.xqblac.cn
pghvc.xqblac.cn
wamqx.xqblac.cn
zkewd.xqblac.cn
foybt.xqblac.cn
avnzc.xqblac.cn
fpiod.xqblac.cn
elvuj.xqblac.cn
hulfx.xqblac.cn
fwmpl.xqblac.cn
qkdkj.xqblac.cn
yxsnb.xqblac.cn
shbip.xqblac.cn
cfuxe.xqblac.cn
mjsxe.xqblac.cn
aefml.xqblac.cn
mqkwd.xqblac.cn
bbopd.xqblac.cn
oazrj.xqblac.cn
uhjqf.xqblac.cn
ipjvn.xqblac.cn
iwlos.xqblac.cn
ytrrc.xqblac.cn
dtabi.xqblac.cn
wyhor.xqblac.cn
qtnqu.xqblac.cn
thnvg.xqblac.cn
yujxi.xqblac.cn
doubi.xqblac.cn
rgcvr.xqblac.cn
pvpsw.xqblac.cn
oivrc.xqblac.cn
wxspw.xqblac.cn
lztah.xqblac.cn
nidzn.xqblac.cn
shraa.xqblac.cn
cagum.xqblac.cn
kwlbi.xqblac.cn
eeull.xqblac.cn
wiqmb.xqblac.cn
wluqq.xqblac.cn
sneoc.xqblac.cn