Chrome浏览器使用的用户脚本元数据

时间:2012-04-07 14:30:59

标签: javascript userscripts

Chrome似乎正在吞噬我的用户脚本元数据:


 // ==UserScript== 
 // @name Flag Offtopic button 
 // @version 1.0 
 // @description Vote-to-off-topic button
 // @author Manish Goregaokar (http://stackapps.com/users/10098/manishearth)
 // @license GNU GPL v3 (http://gnu.org/copyleft/gpl.html) 
 // @include http://meta.stackexchange.com/questions/* 
 // ==/UserScript==

function with_jquery(f) {
     var script = document.createElement("script");
     script.type = "text/javascript";
     script.textContent = "(" + f.toString() + ")(jQuery)";
     document.body.appendChild(script);
};

//(rest of script availible on request)

脚本有效,但元数据没有(它试图在每个站点上运行,文件名显示而不是“Flag Offtopic button”等)

我是用户的新手,所以我不知道我做错了什么。毫无疑问,这是愚蠢的事情。

其他信息:最初,脚本有一个不兼容的字符集(不知道为什么)。我使用Dreamweaver的Modify> Page属性将其更改为UTF-8,并且脚本工作(使用元数据)。它后来破坏了(不记得何时)元数据,但我认为这是一个错误的空间。现在我找不到什么是错的。上面的代码本身(当复制粘贴到记事本,保存为abc.user.js,并拖放到Chrome时)会丢失其元数据。

3 个答案:

答案 0 :(得分:2)

毫无疑问,UTF-8 BOM隐藏在文档的前面。那个问题前几天让我感到困惑。

(为什么UTF-8 BOM甚至存在肯定是一个很好的问题,但为什么编辑甚至使用它们确实令人困惑。)

答案 1 :(得分:1)

将编码设置为“Unicode(UTF-8)”的脚本保存(至少在使用BBEdit的Mac上)会触发OP的问题。

将脚本保存为“Western(ISO Latin 1)”可修复它。

(为了完整起见:谷歌Chrome 19.0.1084.56,虽然我不认为这是相关的。)

答案 2 :(得分:0)

修正了它。可能是编码变化的一件神器 - 一些隐藏的角色。

我只是将代码复制到一个新文件(之前我一直在复制整个shebang),从工作脚本中复制头文件并修改它们。它有效。

更新:经过一番调查,编码更改已成功搞砸了第一个角色。它没有被JS解析,所以脚本仍然有效,但Chrome / GM不喜欢它。

FWIW:

// ==UserScript==
 // @name Flag Offtopic button
 // @version 1.0
 // @author Manish Goregaokar (http://stackapps.com/users/10098/manishearth)
 // @description Adds a self-navigating "Flag-offtopic" button to MSO
 // @license GNU GPL v3 (http://www.gnu.org/copyleft/gpl.html) 
 // @include http://meta.stackexchange.com/questions/*

 // ==/UserScript==