embedded与对象
当我想要显示Adobe PDF查看器时,在我的HTML文件中使用的是正确/最佳标记? 现在我正在使用下面的代码,但有一些奇怪的副作用(例如,它似乎窃取了我已经设置到另一个INPUT文本框的起始焦点;它似乎并不能很好地使用jQueryUI Resizeable类等)
<embed src="abc.pdf" type="application/pdf" />
我甚至可以用OBJECT标签做同样的事情吗? 使用一个标签与另一个标签是否有优势/劣势?
对象与EMBED – 为什么不总是使用embedded?
底线:OBJECT是好的,EMBED是老的。 除IE的PARAM标签之外,如果浏览器不支持OBJECT的被引用的插件,那么OBJECT标签之间的任何内容都将被渲染,显然,无论是否呈现,内容都会被http请求。
object
是当前在页面上embedded内容的标准标记。 embed
是由Netscape(沿着img
)包括在任何像object
东西在W3C的头脑。
这是如何包含一个PDF与object
:
<object data="data/test.pdf" type="application/pdf" width="300" height="200"> alt : <a href="data/test.pdf">test.pdf</a> </object>
如果你真的需要内联的PDF在几乎每个浏览器中显示,因为旧的浏览器了解embed
而不是object
,你需要这样做:
<object data="abc.pdf" type="application/pdf"> <embed src="abc.pdf" type="application/pdf" /> </object>
这个版本不validation 。
其他一些选项:
<object type="application/pdf" data="filename.pdf" width="100%" height="100%"> </object> <object type="application/pdf" data="#request.localhost#_includes/filename.pdf" width="100%" height="100%"> <param name="src" value="#request.localhost#_includes/filename.pdf"> </object>
你也可以使用iframe方法,虽然这不是跨浏览器兼容的(例如,不能在铬或android工作,可能其他人 – >而是提示下载)。 它适用于dataURL和普通的URL,不知道其他的例子是否适用于dataURLS(请让我知道其他例子是否适用于dataURLS?)
<iframe class="page-icon preview-pane" frameborder="0" height="352" width="396" src="data:application/pdf;base64, ..DATAURLHERE!... "></iframe>
embedded不是一个标准的标签,虽然对象是。 这里有一篇看起来会帮助你的文章 ,因为看起来情况并不那么简单。 包括一个PDF的例子。
在网页上用于pdf显示的最好的交叉浏览器解决scheme可能是使用Mozilla PDF.js项目代码,它可以作为node.js服务运行,并按以下方式使用
<iframe style="width:100%;height:500px" src="http://www.mysite.co.uk/libs/pdfjs/web/viewer.html?file="http://www.mysite.co.uk/mypdf.pdf"></iframe>
在这个ejectamenta博客文章中可以find关于如何使用pdf.js的教程