第二章 网站开发基础之HTML教程 - 二、常用HTML标签:object,向网页插入对象(内联元素);embed,向网页插入插件(内联元素)

19.object,向网页插入对象(内联元素);embed,向网页插入插件(内联元素)

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>object标签</title>
</head>
<body>
例,用对象标签插入一个flash对象:<br>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" 
width="419" height="139">
<param name="movie" value="flash.swf">
<param name="quality" value="high">
</object>
</body>
</html>

    object标签只支持IE系列的浏览器(支持ActiveX控件的浏览器),用于调用浏览器所支持的对象。比如浏览器支持显示flash,那么可以使用该object调用flash对象,使之在浏览器中显示flash;浏览器若支持直接显示pdf文档、word文档,那么使用该标签也可以调用相应的对象并显示出来。object标签调用不同的对象时,通过“classid”属性告诉浏览器调用了某对象,浏览器支持不支持、如何显示,由浏览器来处理(object标签的“classid”属性值,来自windows操作系统注册表的“HKEY_CLASSES_ROOT\CLSID”键中)。不同的对象,需要设置的参数不同,这里不展开讲解。除了flash,通常很少使用object标签调用其它对象,主要是浏览器的兼容问题。在不支持object标签的浏览器里,object标签将不被显示出来,如以上代码,在火狐中将不显示。
    各种浏览器在处理object标签时都会遵守一个规则:如果浏览器不支持该object标签所调用的对象,则会执行位于<object>和</object>之间的代码。通过这种方式,我们能够嵌套多个object标签,或者在object标签中嵌入其它标签,以达到浏览器对代码的最大兼容。
    除了object标签,还有另一个类似的标签,embed。说到embed标签,必须讲讲其产生的历史。浏览器开发厂商的先行者Netscape公司,为了在其浏览器中插入除了文字和图片之外的元素,如嵌入SUN公司的Applet Java小程序,使用了embed标签。之后随着Flash、音频、视频等多媒体元素在网站上出现,embed标签则进行了扩展,利用该标签的type属性用以区别各种元素。在这个阶段,微软也进军浏览器市场,使用了object标签以嵌入除了文字和图片之外的元素。只是object标签只支持ActiveX控件的插入,而ActiveX又是微软独有的技术,所以也只有其IE浏览器支持。也正是这样,之后不断出现的各种浏览器都不支持object标签,而支持embed标签。但这又有一个新的问题,object标签是W3C认可的HTML标签,embed却不是,头疼的问题仍然是落在了网站开发人员的身上,为实现同一效果而不得不为不同的浏览器开发不同的代码。示例使用embed标签插入Flash对象:
 

<!DOCTYPE HTML><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>embed标签</title>
</head>
<body>
例,用插件标签插入一个flash对象:<br>
<embed src="flash.swf" quality="high" width="419" height="139"
pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>
</body></html>

    其运行原理与object标签相似,embed标签用于告诉浏览器调用了某个插件,支持与不支持,仍然需要浏览器来处理。当前的浏览器几乎都支持embed标签。以上代码在火狐中会显示,在IE中也会显示。
    但是单单使用embed标签来调用对象,仍然是不够安全的,我们无法确保在各种浏览器中能够100%正常显示。Macromedia公司提倡了一种“object-embed”的混合写法,能够最大程度上的兼容各种浏览器,虽然该混合写法不符合W3C标准却延用至今。仍然以显示Flash对象为例,“object-embed”的混合写法如下:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>object+embed标签</title>
</head>
<body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" 
width="419" height="139">
<param name="movie" value="flash.swf">
<param name="quality" value="high">
<embed src="flash.swf" quality="high" width="419" height="139"
pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>
</object>
</body>
</html>

    以上代码,在IE浏览器中,object标签会正常显示flash,但object标签里的embed标签则被当成object的参数,不会显示(不会再显示出另一个flash);而在非IE浏览器中,object标签不会显示flash,但会执行object标签里的embed标签,正常显示了flash。可以将以上代码保存在电脑中,在需要插入flash的地方从电脑里复制出来粘贴使用,只需要修改代码中flash文件路径、宽度、高度(注意,由于该混合代码包括了object标签和embed标签,所以修改flash文件路径、宽度、高度都需要各修改2个地方)。
    object或embed很少用于调用其它对象或插件(如word文件、pdf文件、midi文件、java文件等),也不推荐在网页中调用除了flash外的其它各种对象、插件,因为兼容性很差,并非所有浏览器都支持。
    补充知识点1:Macromedia公司是全球最大的网络多媒体软件公司,旗下的软件Macromedia Flash,Macromedia Dreamweaver,Macromedia Fireworks,称为“网页三剑客”。其成立于1992年,2005年被Adobe公司收购,所以Macromedia Dreamweaver也就变成了Adobe Dreamweaver。
    补充知识点2:“对象”这个概念在编程里经常使用,其来源可追溯到哲学。在哲学中,主体
(subject)指能认识一切事物和有实践能力的人;客体(object),也称为对象,指可以被感知的一切事物,包括客观存在的事物和想象的事物。即一切事物都是对象,一粒尘埃,一头牛,一片草原,整个亚洲,太阳,宇宙……都是对象。在编程里,对象是一种结构,一种拥有属性和方法(方法也称为函数)的特殊数据结构,是对实际事物、事务的一种抽象。打个比方,以猫为对象来讲,其属性有:雌雄、年龄、毛色,其方法有:吃、跑、跳、看、叫。程序员通过编写代码实现的对象,通常是指某个类的实例(类与实例的关系,仍然打比方来讲,类是一栋楼的设计蓝图,对象是根据蓝图盖出来的楼房)。HTML标签中object标签所调用的对象是ActiveX对象,实质是IE浏览器所支持的一些组件或插件,只是用了一个高大上的名称“对象”来称谓。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值