0

Chrome 似乎正在吃掉我的用户脚本元数据:

 // ==用户脚本==
 // @name 标记离题按钮
 // @版本 1.0
 // @description 投票到离题按钮
 // @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/*
 // ==/用户脚本==

函数 with_jquery(f) {
     var script = document.createElement("script");
     script.type = "文本/javascript";
     script.textContent = "(" + f.toString() + ")(jQuery)";
     document.body.appendChild(脚本);
};

//(脚本的其余部分可根据要求提供)

该脚本有效,但元数据无效(它尝试在每个站点上运行,显示文件名而不是“标记 Offtopic 按钮”等)

我是用户脚本的新手,所以我不知道我做错了什么。毫无疑问,有些愚蠢。

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

4

3 回答 3

2

毫无疑问,文件前面隐藏着一个 UTF-8 BOM。前几天那个问题困扰着我。

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

于 2013-01-18T17:50:14.927 回答
1

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

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

(为了完整起见:Google Chrome 19.0.1084.56,尽管我认为这无关紧要。)

于 2012-06-20T18:02:18.950 回答
0

修复。可能是编码变化的产物——一些隐藏的字符。

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

更新:经过一番调查,编码更改设法混淆了第一个字符。它没有被 JS 解析,所以脚本仍然有效,但 Chrome/GM 不喜欢它。

FWIW:

// ==用户脚本==
 // @name 标记离题按钮
 // @版本 1.0
 // @author Manish Goregaokar (http://stackapps.com/users/10098/manishearth)
 // @description 向 MSO 添加一个自导航“标记离题”按钮
 // @license GNU GPL v3 (http://www.gnu.org/copyleft/gpl.html)
 // @include http://meta.stackexchange.com/questions/*

 // ==/用户脚本==

于 2012-04-07T15:15:14.177 回答