Content-Type
HTTP 标头指示资源的MIME类型(网页、图像或下载)。对于 HTML 页面,MIME 类型通常是text/html
,对于文本文件,通常是text/plain
。
服务器确实会发送text/plain;charset=utf-8
您的文本文件(例如,当使用+执行文件的硬重新加载时,如Firebug的 Net 面板中所示)。但是,与其他 Web 浏览器不同,Internet Explorer 会在文件中看到 HTML 并猜测服务器(Microsoft 文档)。CtrlF5
因为这可能会产生安全隐患,但微软不想冒险破坏与旧网站的向后兼容性(通过使 IE 的行为与其他浏览器的行为一致),Internet Explorer 8 和更高版本支持X-Content-Type-Options: nosniff
在这种情况下禁用 HTML 检测的标题. 但是,在像 Wikispaces 这样的网站上,您可能没有发送标题的选项,而且无论如何,标题在 Internet Explorer 6 和 7 中都不起作用。
在 Wikispaces 上,使用提供的源代码格式化功能可能是有意义的(请参阅wikitext 帮助页面):
[[code format="javascript"]]
alert('hello, world');
[[code]]
如果您想将代码存储在单独的页面上,您可以从人们实际应该阅读的页面中包含它(Wikispaces 包括帮助页面)。这称为嵌入:
[[include page="PAGENAME"]]
如果做不到这一点,一个不错的选择可能是对代码进行 HTML 转义(使用一些文本替换)并将其插入<pre></pre>
. 然后您将上传一个 HTML 文件(文件扩展名为.htm
或.html
)。出于解释的目的,这里有一个简单的 JavaScript 函数,它可以进行 HTML 转义:
function htmlEscape(text) {
// Absolutely necessary
text = text.replace(/&/g, '&'); // Has to go first
text = text.replace(/</g, '<');
// Not needed for your specific case, yet would be good to include
text = text.replace(/>/g, '>');
text = text.replace(/"/g, '"');
text = text.replace(/'/g, '''); // ''' is only OK in XHTML and in HTML5
return text;
}