繁体   English   中英

JavaScript文件在最近的Chrome版本上停止工作

[英]JavaScript file stopped working on the last Chrome version

我们有一个旧页面。 最近,谷歌浏览器(和其他最新版本的浏览器)停止显示menu,但是如果我单击“刷新”,则Inspect Tool会显示以下错误:

资源被解释为脚本,但以MIME类型text / html传输:“ ... / menu.js.php”

该问题的解决方案是什么,或者该问题实际上在其他地方?

这是因为服务器未正确设置标头内容类型:

Content-Type: application/javascript

为了明确起见,您的服务器应在响应上设置正确的http标头以反映内容类型。

我猜您的网页中有一个带有type =“ text / javascript”的脚本标签,但Chrome表示服务器未将内容标识为javascript。

Content-Type这不是问题。

问题出在其他地方。 我看到的一个问题是fancybox:

1.9版中的jQuery已删除了大多数(即使不是全部)折旧方法。

$ .browser是其中之一。 Fancybox依赖于$ .browser,因此如果未安装Migration插件,则无法使用jQuery 1.9或maior和您的fancybox版本。

您可以将jQuery降级到1.9以下版本,或者将fancybox升级到版本2或包含jquery migration插件

因为Javascript文件实际上是PHP文件,所以服务器将文件传输为text / html 我自己没有发现这一点。 我从SCRIPTONITE的答案中获取了

要在PHP中设置标头,可以使用header()函数。 您应该始终尽早设置标题,以免出错。 如果尚未将任何内容发送到输出,则只能设置标头。 没有回声,没有HTML,什么也没有。 从手册中:

请记住,必须先通过常规HTML标记,文件中的空白行或从PHP发送任何实际输出,然后调用header()。

要设置Javascript文件的标头,请使用以下行:

header("Content-Type: application/javascript");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM