当前位置:  开发笔记 > 编程语言 > 正文

从脚本中访问Greasemonkey元数据?

如何解决《从脚本中访问Greasemonkey元数据?》经验,为你挑选了2个好方法。

我的脚本有没有办法检索在自己的头文件中声明的元数据值?除了也许,我在API中看不到任何有希望的东西GM_getValue().那当然会涉及一个特殊的名称语法.我试过,例如:GM_getValue("@name").

这里的动机是避免冗余的规范.

如果无法直接访问GM元数据,也许有一种方法可以阅读脚本本身.它肯定在某个地方的内存中,并且解析起来也不会太难"// @".(在我的情况下,这可能是必要的,因为我真正感兴趣的是@version,这是userscripts.org读取的扩展值.)



1> Athena..:

这个答案是过时的:由于Greasemonkey的0.9.16(2012年2月)的请参阅Brock的答案就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        /sf/ask/17360801/
// ==/UserScript==
.toString();

GM_log(metadata); 

有关更多信息,请参阅greasemonkey-users组中的此主题.在最后可以找到更强大的实现.



2> Brock Adams..:

使用在0.9.16版本中添加到Greasemonkey 的GM_info对象.

例如,如果您运行此脚本:

// ==UserScript==
// @name            _GM_info demo
// @namespace       Stack Overflow
// @description     Tell me more about me, me, ME!
// @include         http://stackoverflow.com/questions/*
// @version         8.8
// ==/UserScript==

unsafeWindow.console.clear ();
unsafeWindow.console.log (GM_info);


它将输出此对象:

{
    version:            (new String("0.9.18")),
    scriptWillUpdate:   false,
    script: {
        description:    "Tell me more about me, me, ME!",
        excludes:       [],
        includes:       ["http://stackoverflow.com/questions/*"],
        matches:        [],
        name:           "_GM_info demo",
        namespace:      "Stack Overflow",
        'run-at':       "document-end",
        unwrap:         false,
        version:        "8.8"
    },
    scriptMetaStr:      "// @name            _GM_info demo\r\n// @namespace       Stack Overflow\r\n// @description     Tell me more about me, me, ME!\r\n// @include         http://stackoverflow.com/questions/*\r\n// @version         8.8\r\n"
}

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有