在php文件中创建javascript代码-SAFARI/CHROME不';行不通
我创建了一个.php文件,它可以写出如下的js代码:在php文件中创建javascript代码-SAFARI/CHROME不';行不通,php,javascript,google-chrome,safari,include,Php,Javascript,Google Chrome,Safari,Include,我创建了一个.php文件,它可以写出如下的js代码: <? //my_js.php // javascript header header('Content-type: text/javascript'); // Date in the past header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // always modified header('Last-Modified: ' . gmdate('D, d M Y H:i:s') .
<?
//my_js.php
// javascript header
header('Content-type: text/javascript');
// Date in the past
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
// always modified
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
// HTTP/1.1
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
?>
//
// js code here
//
这是一个奇怪的问题,因为当我从Crome/Safari查看源代码时,我可以访问js文件,而且看起来没有错误
我正在为mac使用Chrome 6.04和Safari 5。可能会设置内容配置:内联;头球
<?php
if(strstr($_SERVER["HTTP_USER_AGENT"],"MSIE")==false) {
header("Content-type: text/javascript");
header("Content-Disposition: inline; filename=\"download.js\"");
header("Content-Length: ".filesize("my-file.js"));
} else {
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=\"download.js\"");
header("Content-Length: ".filesize("my-file.js"));
}
header("Expires: Fri, 01 Jan 2010 05:00:00 GMT");
if(strstr($_SERVER["HTTP_USER_AGENT"],"MSIE")==false) {
header("Cache-Control: no-cache");
header("Pragma: no-cache");
}
include("my-file.js
");
?>
这可能是因为它希望文件扩展名为my_js。js。如果是这种情况,请将您的PHP文件保存为my_js.js,然后假设您使用的是Apache,请使用Apache指令:ForceType:
像这样:
<Location /your/path/my_js.js>
ForceType application/x-httpd-php
</Location>
ForceType应用程序/x-httpd-php
祝你好运 它应该有用。或者您可以更改此选项:
header('Content-type: text/javascript');
对此
header('Content-type: application/javascript');
注:
- application/javascript:javascript;在RFC 4329中定义,但在IE 8或更早版本中不接受
- HTML4和HTML5中允许使用text/javascript,与application/javascript不同,它具有跨浏览器支持
?>结束标记是否应该创建解析错误?不要介意?>结束标记,这是我的错:)http://localhost:8888
看起来像是MAMP提供的本地主机服务器。我也用它。它的结构是这样的,因为在使用指定的端口(如80(HTTP))时,您需要输入管理员密码。嗯,如果他提供的内容类型正确,这应该不会是一个问题:期望某个扩展,这将是浏览器端严重的错误行为!我同意,佩卡,但我记得早期版本的Safari(特别是)有这个问题——也许现在仍然有。例如,我经常在错误日志中看到*.js文件工作正常,但它们会抛出一个警告,指出它们是使用错误的头发送的。这表明浏览器更喜欢扩展而不是内容类型。
<Location /your/path/my_js.js>
ForceType application/x-httpd-php
</Location>
header('Content-type: text/javascript');
header('Content-type: application/javascript');