为什么IE8不能识别脚本标签中的type =“application / javascript”?

时间:2009-08-17 14:30:06

标签: javascript internet-explorer-8

我开发了一个使用jQuery和Ajax的HTML页面。我的<head>代码中有以下几行:

<script language="javascript" type="application/javascript" src="script/jquery.js"></script>
<script language="javascript" type="application/javascript">
    function someFunction() {
        some code;
    }
</script>
    ...

  later - down in the body tag:
<a href="javascript:someFunction();">click here</a>

它在FF和Chrome中运行得非常好,但是一旦点击链接就在IE8中抛出了一个“对象预期”。即使启用了脚本调试器,它也无法到达函数的第一行。
我尝试切换到IE7模式或IE8兼容模式 - 无济于事。

我很幸运,并通过Google发现了一个问题:有人建议将type标记中的<script>更改为"text/javascript",现在它可以在所有3种浏览器中使用。

我的问题是:我做错了什么? "text/javascript"优于"application/javascript",还是我的问题有更好的(==更正确的)解决方案?

2 个答案:

答案 0 :(得分:22)

“text / javascript”是所有三种浏览器都支持的唯一类型。但是,您实际上并不需要输入类型。如果没有另外指定,脚本标记的type属性将默认为“text / javascript”。这将如何影响验证,我不确定。但无论如何这真的很重要吗?

答案 1 :(得分:2)

简单的答案是IE不支持application / javascript的类型值。推荐它的RFC 4329显然是在IE6发布之后发布的,我想MS开发人员认为甚至不需要支持MIME类型。