Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在IE7+; 有没有办法在IE7中的HTML页面*内联*中嵌套图像?_Html_Image_Internet Explorer 7_Inline - Fatal编程技术网

在IE7+; 有没有办法在IE7中的HTML页面*内联*中嵌套图像?

在IE7+; 有没有办法在IE7中的HTML页面*内联*中嵌套图像?,html,image,internet-explorer-7,inline,Html,Image,Internet Explorer 7,Inline,我不能使用外部资源,这都是因为特定的服务器配置(它是一个处于维护模式的web dispatcher,将所有请求重定向到单个.html页面) 因此,我无法通过以下方式使用经典嵌入: <html> <img src="mypic.jpg" /> </html> 在寻找解决方案时,我发现: 在XHTML文件中使用内联SVG#=>我不能使用XHTML扩展名,因为我的页面扩展名是.html(我不能更改) 使用base64编码#=>它在Firefox和Chrom

我不能使用外部资源,这都是因为特定的服务器配置(它是一个处于维护模式的web dispatcher,将所有请求重定向到单个.html页面)

因此,我无法通过以下方式使用经典嵌入:

<html>
 <img src="mypic.jpg" />
</html>

在寻找解决方案时,我发现:

  • 在XHTML文件中使用内联SVG#=>我不能使用XHTML扩展名,因为我的页面扩展名是.html(我不能更改)
  • 使用base64编码#=>它在Firefox和Chrome上运行得很好,但在IE7中却不行
在我的配置中,似乎没有一个是有效的


我追求的越多,希望就越少。有什么想法吗?

对于svg解决方案,您的页面不需要以.xhtml结尾。事实上,它可以在web服务器处理的任何扩展中结束

xhtml中的页面由其doctype定义定义。将xhtml1.0(严格或过渡)或更好的xhtml1.1的doctype定义放入页面中,并嵌入svg


作为替代解决方案,您可以尝试使用.html扩展名直接输出图像,保留其原始mime(例如图像/jpeg),但我不确定它是否会工作。

据我所知,对于当前版本的Internet Explorer,html文档中嵌入的图像,唯一的选择是(除Internet Explorer外,其他任何软件都不支持此功能)

您可以使用类似于将VML或SVG抽象为单个JS脚本(但这会增加对JavaScript的依赖)


最简单的选择可能是引用外部URI上的普通图像…在不同的服务器上。

您可以重定向到单个.html页面,而不是重定向到单个图像并将文本放在图像上。这有明显的缺点,但图像有多重要


基本64编码是什么意思?

XHTML页面是由其内容类型定义的,而不是Doctype-Internet Explorer 8和更低版本不支持XHTML(除非它假装为HTML)或SVG(除非IE有第三方插件添加支持).输出带有HTML扩展名的JPEG也不会有任何帮助-关键是在一个请求中获取页面和图像,而不是在URI中使用
.HTML
的两个不同请求。是的。IE9中添加了支持(或者我听说,我希望它不是标签汤模式解析应用程序/xhtml+xml)。(编辑:这是对已删除注释的响应)如果您使用文本/html内容类型提供XHTML,或者如果页面的URI触发IE的内容类型忽略功能,则XHTML将被解析为标记汤。这与支持具有不同解析规则和DOM结构的XHTML截然不同(例如,处理名称空间,在JS中以小写形式返回标记名,tbody是可选元素,而不是带有可选开始/结束标记的必需元素等)。@David Nice article,但“通过版本7的Internet Explorer缺乏支持”@David,谢谢,因此使用“base 64编码”,OP谈论的是URI。@Arnaud-我回答了Marcus关于“base 64 encoded”在本文中的含义的问题(这就是为什么它是对他的答案的评论,而不是自己的答案)。您最初的问题指出IE7不支持它。我还发现了Raphaël。当然,这是一个可行的解决方案。但对于维护开发者来说,这将是非常困难的。事实上,我更喜欢一个适用于SVG以外的图像类型的解决方案。