您正在查看的页面的HTTP标头元素为Content-type: text/html
。 HTML正常显示,JavaScript将被执行。如果您有Content-Type: text/javascript
,那么JavaScript 未执行,则只有displayed。
我的问题是:除text/html
以外的内容类型是否会执行JavaScript?对于任何常见的浏览器(IE,Firefox,Chrome,Safari),我都想尽可能完整的列表。
答案 0 :(得分:3)
我不知道完整列表,很可能没有这样的列表公开存在。你可能必须自己找出来。 (虽然我认为没有任何事情可以反对设置一个包含多个iframe的测试页面,并要求SO社区提供各自浏览器的数据。之前已经完成了。)
在Internet Explorer中,这一个肯定应该在列表中:
application/hta
Hypertext Applications 我要测试的考生(因为可以想象一个粗心的程序员可能会激活他们进行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 javascript(application/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
?