有没有办法我的脚本可以检索在其自己的标题中声明的元数据值?我没有看到任何有希望的API,除了GM_getValue().这当然包括一个特殊的名称语法.我试过,例如:GM_getValue(“@ name”).
这里的动机是避免冗余规范.
如果GM元数据不能直接访问,也许有一种方法可以读取脚本本身.它肯定在记忆中,并且解析“// @”并不是太难了. (在我的情况下可能是必要的,因为我真正感兴趣的值是@version,这是一个扩展值,由userscripts.org读取)
解决方法
这个答案是过时的:至于Greasemonkey 0.9.16(2012年2月),请参阅
Brock’s answer关于GM_info
是.一个很简单的例子是:
var Metadata=<> // ==UserScript== // @name Reading Metadata // @namespace http://www.afunamatata.com/greasemonkey/ // @description Read in Metadata from the header // @version 0.9 // @include https://stackoverflow.com/questions/104568/accessing-greasemonkey-Metadata-from-within-your-script // ==/UserScript== </>.toString(); GM_log(Metadata);
详见this thread on the greasemonkey-users group.更接近尾声可以找到一个更强大的实现.