将SVG文件嵌入到网页中的问题 并说object和embed标记

来源:互联网 发布:直播流媒体服务器软件 编辑:程序博客网 时间:2024/05/13 20:57

SVG文件嵌入到网页中,可以使用<object>将其包含到网页的HTML中,例如下面的HTML文档:

<html>

  <head><title>SVG Demonstration</title></head>

  <body>

  <h2 style="text-align: center">SVG Demonstration</h2>

   <p>A page may have other code besides the SVG image.</p>

    <object type="image/svg+xml" data="MySVG.svg"

           width="300" height="200">

  </object>

  <p>Using objects allows the browser to decide what to display.</p>

  </body>

</html>

将其保存为MySVG.html,并将MySVG.svg文件与此HTML文件放到同一目录。将MySVG.html直接拖到IE浏览器中,在本地打开,可以看到效果。

再将两个文件放到服务器上,在客户端IE浏览器中打开该HTML页面,发现不能正确浏览该网页的SVG文件。为了测试,又随便找了一台机器,发现也不能正确浏览该网页。什么问题呢?浏览器的问题?没有时间,也懒得下其它浏览器测试。

 

仔细看看HTML代码,让我想到了<embed>objectembed是两个HTML标记,最开始出现的时候是针对Internet ExplorerNetscape两种浏览器的,<object>是一个比<embed>更不正式的标签。他们功能差不多,但是还是有一些区别,比如说如果嵌入的文件尺寸过大时,<object>只会对其缩放,而<embed>会将其裁剪掉。

 

既然<object><embed>有不同,那么用<embed>的话会如何呢?修改HTML文件为:

<html>

  <head><title>SVG Demonstration</title></head>

  <body>

  <h2 style="text-align: center">SVG Demonstration</h2>

   <p>A page may have other code besides the SVG image.</p>

    <embed src=" MySVG.svg" width="300" height="200"   

           type="image/svg-xml" />

  <p>Using objects allows the browser to decide what to display.</p>

  </body>

</html>

保存文件,打开客户端浏览器,输入网址,可以正确浏览网页包含的SVG文件。

 

原因呢?为什么用<object>找不到SVG文件,而用<embed>就可以?难道<object>嵌入的是本地资源,而<embed>嵌入的是服务器上的资源?也许是这样吧,也许是我的IE本身的问题。如果您知道,告诉我一下。