我已经创建了一个.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') . ' 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
//
然后我将上面的脚本包含在我的index.php文件中,如下所示:
<script type="text/javascript" src="my_js.php?id=<? echo $id ?>">
</script>
这在Firefox中很完美,但SAFARI和CHROME根本不包含my_js.php文件!
我做错了什么?
**编辑:
这是index.php中的渲染html:
<script type="text/javascript" src="my_js.php?id=new"></script>
这是my_js.php代码: (这是一个非常大的文件,所以我只写出前几行)
var g = { sitepath: "myNullUrl" }
function getBrowserWidth(){
if (window.innerWidth){
return window.innerWidth;}
else if (document.documentElement && document.documentElement.clientWidth != 0){
return document.documentElement.clientWidth; }
else if (document.body){return document.body.clientWidth;}
return 0;
}
这是一个奇怪的问题'我正在查看来自Crome / Safari的源代码我可以访问js文件,它似乎没有错误!
我正在使用Chrome 6.04和Safari 5,两者都适用于Mac。
答案 0 :(得分:0)
也许设置Content-Disposition:inline;头?
<?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
");
?>
答案 1 :(得分:0)
可能因为它希望文件扩展名为my_js。 js 。如果是这种情况,请将您的PHP文件保存为my_js.js,然后假设您使用的是Apache,请使用Apache Directive:ForceType:
像这样:
<Location /your/path/my_js.js>
ForceType application/x-httpd-php
</Location>
祝你好运!
答案 2 :(得分:0)
它应该工作。或者你可以改变这个:
header('Content-type: text/javascript');
到这个
header('Content-type: application/javascript');
注意:
application / javascript:JavaScript;在RFC 4329中定义,但在IE 8或更早版本中未被接受
HTML 4和5中允许使用text / javascript,与application / javascript不同,它具有跨浏览器支持