如何将嵌入元素类型从 PDF 流切换到文本流
Posted
技术标签:
【中文标题】如何将嵌入元素类型从 PDF 流切换到文本流【英文标题】:How to switch embed element type from PDF stream to text stream 【发布时间】:2015-06-12 19:50:43 【问题描述】:在我的 JSP Web 应用程序中,我使用 embed
元素来显示 PDF。
<embed src="someurl" >
someurl
在一种情况下会返回 PDF 流,在另一种情况下会返回文本流:
if (IamPDF)
response.setContentType("application/pdf");
/* rest of stream flushing */
else
response.setContentType("text/html");
/* rest of stream flushing */
我可以在 IE 和 Chrome 中毫无问题地刷新 PDF 流。在文本流的情况下,IE 无法显示该流,但它在 Chrome 中运行。而且我没有在embed
元素中指定任何类型。如何让它在 IE 中运行?
【问题讨论】:
如果它们不是问题的原因,它们只是问题中的噪音。当您消除噪音时,您会增加问题的价值(以及获得赞成票和答案的机会)。在这种情况下,您应该edit,此外,您应该发布原始代码(不要重新输入它;只需删除不相关的部分)。我现在为你做了编辑。 答案是否帮助您解决了问题?如果是这样,您应该投票并接受它。 【参考方案1】:我会在
中指定 type 属性<embed></embed>
标签;我也遇到了 Internet Explorer 不接受 javascript 中的某些功能等问题。它只是不是一个好的浏览器。我更喜欢 Chrome 或 Firefox,而且我知道一些人对 Opera 很满意。
【讨论】:
【参考方案2】:在 JSP 的第一行添加<!DOCTYPE html>
以使 IE 以标准模式呈现网页。
例如,
<!DOCTYPE html>
<embed src="someurl" >
【讨论】:
【参考方案3】:您可以通过设置embed
元素的type
属性来解决此问题。
对于 HTML
<embed src="someurl" type="text/html" >
对于 PDF
<embed src="someurl" type="application/pdf" >
引用the embed
element specification:
type
属性(如果存在)给出了选择要实例化的插件的 MIME 类型。该值必须是有效的 MIME 类型。如果type
属性和src
属性都存在,则type
属性必须指定与Content-Type 属性所给资源的显式Content-Type 元数据相同的类型。
已删除指向 MIME 类型和有效 MIME 类型的链接,它们无关紧要。
【讨论】:
嗨,谢谢您的回答,流的内容类型有时会发生变化,有时会出现Text Stream (html/text)
,有时会出现application/pdf
,这里的问题是当我在embed
中设置type
属性时标记为html/text
它只会呈现Text stream
并且它会为application/pdf
提供错误,反之亦然.. 所以我的问题是如何以动态方式设置type
属性..
以动态方式您打算使用服务器端还是客户端?如果服务器端你可以使用 (type="") 类似的东西,如果客户端我认为你必须使用 javascript。
是的,我也尝试过这种方式。这里的问题是<embed>
标签不关心服务器返回的内容。它取自type
属性。 ..我们不能动态改变..以上是关于如何将嵌入元素类型从 PDF 流切换到文本流的主要内容,如果未能解决你的问题,请参考以下文章