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时)会丢失其元数据。
答案 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==