什么内容类型在浏览器中执行javascript?

时间:2011-01-19 22:17:20

标签: javascript http browser

您正在查看的页面的HTTP标头元素为Content-type: text/html。 HTML正常显示,JavaScript将被执行。如果您有Content-Type: text/javascript,那么JavaScript 未执行,则只有displayed

我的问题是:除text/html以外的内容类型是否会执行JavaScript?对于任何常见的浏览器(IE,Firefox,Chrome,Safari),我都想尽可能完整的列表。

5 个答案:

答案 0 :(得分:3)

我不知道完整列表,很可能没有这样的列表公开存在。你可能必须自己找出来。 (虽然我认为没有任何事情可以反对设置一个包含多个iframe的测试页面,并要求SO社区提供各自浏览器的数据。之前已经完成了。)

在Internet Explorer中,这一个肯定应该在列表中:

我要测试的考生(因为可以想象一个粗心的程序员可能会激活他们进行HTML解析)包括:

  • application/form-data
  • text/xhtml+xml(曾经是2000年的proposed,不知道发生了什么事情)

但是,我测试了同时使用Chrome 9和最新版Firefox的版本,他们拒绝了除text/html之外的所有内容。 Firefox将它们显示为可下载的资源,我认为这可以将它们从等式中删除,因为其中的任何JS都将在本地上下文而不是URL中执行。 (IE正在为我执行包括text / plain在内的所有内容,但我认为这是与我的服务器的标题混合。)

如果您想为开源浏览器寻求硬核,请检查他们的源代码或在他们的邮件列表/论坛上询问。我感觉好的有text/html硬编码。

编辑:Arrgh ! Firefox,Chrome和IE解析HTML,并执行脚本,无论内容类型如何 - 当资源的扩展名为.htm或.html 时,我成功设置了Content-type: text/poppycock - 。这意味着您不仅要测试MIME类型,还要测试文件扩展名(不应该在HTTP中扮演任何角色)。不知道 - 这可能是为了修复损坏的Web服务器的输出而引入的。像这样的东西是我不能在IT安全方面工作的原因:)

在Windows 7上进行的所有测试。

答案 1 :(得分:2)

application/xhtml+xml必须执行Javascript。这是我能想到的唯一一个在我头脑中的人。

答案 2 :(得分:2)

这不是很有用。 Javascript无法导入其他脚本,因此您的脚本将与库隔离。将它们联系在一起的唯一方法是通过HTML。此外,没有文档,输入/输出选项非常有限。

答案 3 :(得分:1)

PDF files can also execute javascriptapplication/pdf)。

以及包括SVG(application/xml)在内的XML文档(image/svg+xml),例如:

<?xml version="1.0" encoding="utf-8"?>
<document>
<script xmlns="http://www.w3.org/1999/xhtml" src="xml.js"></script>
</document>

答案 4 :(得分:-1)

您是否尝试过application/javascript