代码之家  ›  专栏  ›  技术社区  ›  volvox

如何强制浏览器将txt文件读取为HTML文档?

  •  9
  • volvox  · 技术社区  · 14 年前

    我有.txt文件,大部分(真正的)是HTML文档(它们有头、正文、HTML标记等)。(我在这里的Windows环境中工作)。我希望任何浏览器都能很容易地将它们作为HTML文档(带普通.html后缀的HTML文档)读取。现在我必须重命名.txt文件才能在浏览器中读取它(例如:myfile.txt->myfile.txt.htm)。我们能用什么把戏来欺骗浏览器吗?

    相关问题:在这些.txt文件的基础上,我是否可以添加任何代码,以便只有具有该代码的.txt文件可以作为HTML文档打开,并被浏览器看到?(代码可以是用十六进制编辑器或纯ASCII添加的任何代码)。谢谢。

    3 回复  |  直到 8 年前
        1
  •  8
  •   Laurence Gonsalves    14 年前

    因为您直接从文件系统中读取文件(即:使用 file: URL而不是 http: 或者其他)您的浏览器正在使用扩展名来确定文件的内容类型。从扩展到内容类型的映射方式因浏览器而异(在一定程度上也因操作系统而异)。

    首先,我应该说我有点害怕做出这种改变。可能有很多代码都有硬编码的假设 .txt 地图到 text/plain 因此,更改映射可能会暴露各种讨厌的错误。除此之外,你需要做的是:

    在Firefox中, ExternalHelperAppService 用于确定 文件: URI。注意,其中一个步骤是使用扩展到类型映射的硬编码列表,这很可能是 TXT 映射到 文本/平原 .

    在IE中,文件类型映射来自OS设置。它根据您所处理的Windows版本有所不同,但通常在相同的常规设置部分,您可以为每个扩展选择要运行的程序,也可以为每个扩展设置一个mime类型。(这也是firefox在“操作系统需要一个mime类型”步骤中查找的地方,我在上面链接到的页面中提到,btw。)如果您将mime类型发送给 TXT text/html 你应该有你想要的行为。

        2
  •  1
  •   Eric    14 年前

    是HTTP头告诉浏览器它传输的数据类型,因此您必须编辑Web服务器的设置。

        3
  •  -3
  •   Eric Hoekstra    10 年前

    在写字板中将文本及其HTM代码另存为打开的文档文本。 在文件名中使用扩展名.htm。 这对我有用。