object、param标签及页面显示PDF文件的方法

来源:互联网 发布:配电网负荷数据 编辑:程序博客网 时间:2024/05/16 18:46

object、param标签及页面显示PDF文件的方法

 

一、object、param标签

 HTML <object> 标签

定义和用法

定义一个嵌入的对象。请使用此元素向您的 XHTML 页面添加多媒体。此元素允许您规定插入 HTML 文档中的对象的数据和参数,以及可用来显示和操作数据的代码。
<object> 标签用于包含对象,比如图像、音频、视频、Java applets、ActiveX、PDF 以及 Flash。
object 的初衷是取代 img 和 applet 元素。不过由于漏洞以及缺乏浏览器支持,这一点并未实现。
浏览器的对象支持有赖于对象类型。不幸的是,主流浏览器都使用不同的代码来加载相同的对象类型。
而幸运的是,object 对象提供了解决方案。如果未显示 object 元素,就会执行位于 <object> 和 </object> 之间的代码。通过这种方式,我们能够嵌套多个 object 元素(每个对应一个浏览器)。

实例

向 HTML 代码添加一个对象:

 <object classid="clsid:F08DF954-8592-11D1-B16A-00C0F0283628" id="Slider1" width="100" height="50">
          <param name="BorderStyle" value="1" />
          <param name="MousePointer" value="0" />
          <param name="Enabled" value="1" />
          <param name="Min" value="0" />
          <param name="Max" value="10" />
</object>
浏览器支持

几乎所有主流浏览器都拥有部分对 <object> 标签的支持。

HTML 与 XHTML 之间的差异

NONE

提示和注释:

注释:<param> 标签定义用于对象的 run-time 设置。
注释:不要对图像使用 <object> 标签,请使用 <img> 标签代替。

 

可选的属性


属性值描述DTDalign
  • left
  • right
  • top
  • bottom
定义围绕该对象的文本对齐方式。TFarchiveURL由空格分隔的指向档案文件的 URL 列表。这些档案文件包含了与对象相关的资源。STFborderpixels定义对象周围的边框。TFclassidclass ID定义嵌入 Windows Registry 中或某个 URL 中的类的 ID 值,此属性可用来指定浏览器中包含的对象的位置,通常是一个 Java 类。STFcodebaseURL定义在何处可找到对象所需的代码,提供一个基准 URL。STFcodetypeMIME type通过 classid 属性所引用的代码的 MIME 类型。STFdataURL定义引用对象数据的 URL。如果有需要对象处理的数据文件,要用 data 属性来指定这些数据文件。STFdeclaredeclare可定义此对象仅可被声明,但不能被创建或例示,直到此对象得到应用为止。STFheightpixels定义对象的高度。STFhspacepixels定义对象周围水平方向的空白。TFnameunique_name为对象定义唯一的名称(以便在脚本中使用)。STFstandbytext定义当对象正在加载时所显示的文本。STFtypeMIME_type定义被规定在 data 属性中指定的文件中出现的数据的 MIME 类型。STFusemapURL规定与对象一同使用的客户端图像映射的 URL。STFvspacepixels定义对象的垂直方向的空白。TFwidthpixels定义对象的宽度。STF


 标准属性

id, class, title, style, dir, lang, xml:lang

如需完整的描述,请参考标准属性。

事件属性

accesskey, tabindex, onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup

如需完整的描述,请参考事件属性。

 
二、网页内嵌多媒体 IE,Mozilla、Firefox、NetScape、Opera 2
2008-09-23 14:59

(一)完美内嵌 Quicktime

  1、客户端要求:

对于 Windows 用户和 Mac OS X 用户,安装相应版本的 QuickTime 播放器即可。Windows 版下载 QuickTimeinstaller.exe,Mac OS X 版下载 QuickTimeinstaller.exe

Windows 用户也可以安装暴风影音等带有 QuickTime 解码器和浏览器插件的其他播放器,例如暴风影音。

对于 Linux 以及 FreeBSD、Solaris 等 Unix 系统用户,需要 VLC media player及其浏览器插件或者 MPlayer 及其浏览器插件。

  2、实现代码: 

<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" width="420" height="360">
   <param name="autoplay" value="true" />
   <param name="src" value="mov%2F%B2%E2%CA%D4%2Emov" />
   <embed src="mov%2F%B2%E2%CA%D4%2Emov" type="video/quicktime" autoplay="true" width="420" height="360">
   </embed>
</object> 

   
  3、要点分析:

  QuickTime 格式的内嵌比较简单,像上面那样写就可以了,基本上没有什么要注意的地方。媒体路径 src 的值,可以是完整地址,也可以是相对地址,可以用 url 编码,也可以不编码,QuickTime 插件和 VLC 插件都能正确的支持,当然为了保险起见,最好还是采用 url 编码方式里写媒体路径。

  虽然 embed 中指定的是 video/quicktime 类型,但是即使链接的媒体是 mp3 仍然能播放。对于 QuickTime 支持的其他类型的没有进行测试,但我想应该也是可以的。

 

(二)完美内嵌 Flash

  1、客户端要求:

  安装你所使用的浏览器的 Flash 插件。

  2、实现代码:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="420" height="320">
   <param name="movie" value="flash/打电话记.swf" />
   <param name="quality" value="high" />
   <embed src="flash/打电话记.swf" quality="high" type="application/x-shockwave-flash" width="420" height="320"></embed>
</object> 

  3、要点分析:

  对于 Flash 似乎没什么好说的,因为这个用的很普遍。在这里写下来只是为了查阅方便,算是凑数吧。呵呵。

(三)让内嵌多媒体通过 XHTML 验证

  1、问题:

  上面的所有的代码,虽然能够完美的在各个浏览器上很好的播放了,但是还有一点美中不足,那就是这样的页面无法通过 XHTML 验证。原因是 embed 标签从来都不是 HTML 标准中的标签,因此 XHTML 中也没有它。

  2、解决:

  如果你不在乎你的网页是否符合标准,那照上面那样做就可以了。如果你还想追求更加完美,请看下面的解决方案:

  下面以 flash 为例来介绍,方法同样适用于其他类型的多媒体内容。

  我们知道 W3C 推荐使用的是 object 标签,但用法却不是 Internet Explorer 那种用 classid 来区分控件类型,而是采用 type 来指定 MIME 类型。现在的 Mozilla、Firefox 和 Opera 都支持这种用法,虽然 IE 目前的版本也支持这种用法,不过很可惜的是,IE 还是有 bug,那就是只有全部下载完毕才能播放。而且还不是所有的情况下都能用。在某些 IE 浏览器上还显示空白。所以单纯用 W3C 推荐的 object 标签用法还是不够的。但是我们可以作一下变通,如果是用户浏览器是 IE 的话,我们就用 IE 的 object 的用法,如果是其他浏览器,我们就采用 W3C 的用法。这样就可以两全其美了。也许此刻,你觉得我们该用到脚本了。不,我们不需要脚本。我们只需要用 IE 所特有的条件注释和 CSS 就可以做到了。例子如下:

 

<style type="text/css">
.mozilla {
display:block;
}
</style>
<!--[if IE]>
<style type="text/css">
.mozilla {
display:none;
}
</style>
<![endif]-->

<object
data="flashdatei.swf"
type="application/x-shockwave-flash"
height="275"
width="256"
class="mozilla">
<param name="autoplay" value="true">
</object>
<!--[if IE]>
<object
classid="cclsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
width="256"
height="275">
<param name="src" value=""flashdatei.swf">
</object>
<![endif]-->

  你会发现其实就是把 embed 替换成了 object,而且位置也从 IE 的 object 中移出来了。embed 标签里的 src 属性在 object 中变成了 data 属性。而 firefox 等非 IE 浏览器因为不认识 <!–[if IE]> 标签,所以其中的部分都当作注释忽略了。而 IE 因为执行了 <!–[if IE]> 中的内容,所以 firefox 中可以识别的那个 object 因为 css 被重新定义而被隐藏了。
 
三、如何直接在网页中显示PDF文件
2011-06-17 15:52:49

  1、 embed

 <embed width="800" height="600" src="test_pdf.pdf"> </embed>

  通过的浏览器:360、Firefox、IE、Chrome

  2、Object 

<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="800" height="600" border="0"> <param name="SRC" value="test_pdf.pdf"> </object> 

  通过的浏览器:360、IE

  未通过的浏览器:Firefox、Chrome

  3、 iFrame框架

<iframe src="test_pdf.pdf" width="800" height="600"></iframe> 

  通过的浏览器:360、Firefox、IE、Chrome

 

  4、用浏览器直接访问http://127.0.0.1/test_pdf.pdf (其实这个不算是在网页内吧)

  通过的浏览器:360、Firefox、IE、Chrome

  以上四种方式均在WinXP下。(之前有碰到过上传的功能在Win7下失效的情况,故在此说明一下OS)

0 0
原创粉丝点击