我想将UserScript分发给很多人,但我需要动态创建脚本(使用PHP),因为某些参数会发生变化。
我有一个模板脚本;在这个脚本中,我有几个参数可以即时填写,例如,在模板中:
var a_parameter = "__tmp_aparam__";
然后我将脚本加载到PHP中,并替换那些参数:
$script = file_get_contents('priv/template.js');
$new_script = str_replace('__tmp_aparam__','a_value',$script);
echo $new_script;
这将创建我想要的脚本,但是,它不可下载。如何让PHP脚本创建一个* .user.js文件,哪些浏览器(如chrome)会自动下载并安装?
我可以设置标题属性来执行此操作吗?
答案 0 :(得分:2)
使用.user.js
后缀网址,并使用mime-type application/javascript
投放该文件。
用户脚本管理员通过.user.js
扩展名识别用户脚本。
屏幕截图:通过使用.user.js
后缀随机JavaScript文件来触发Greasemonkey的安装:
答案 1 :(得分:0)
在php手册下:
http://php.net/manual/en/function.header.php
评论:
Cody G.01-Aug-2010 09:53
包括以下用于通过使用php header创建下载的代码:
<?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");
?>
我想而不是以下命令:
include("my-file.js");
应该有你的代码:
$script = file_get_contents('priv/template.js');
$new_script = str_replace('__tmp_aparam__','a_value',$script);
echo $new_script;
并且download.js必须是something.user.js
PS:我现在无法测试此代码,任何评论都将不胜感激