首页 > 解决方案 > 获取 Tampermonkey 上的可用功能列表

问题描述

我目前有一个 Tampermonkey 脚本,其中包含一系列上下文化函数,我提供这些函数作为在某个页面上运行的选项。

我的代码的简化版本是:

window.func1 = function func1() {...}
window.func2 = function func2(a) {...}
window.func3 = function func3(a, b) {...}

我希望有一些函数可以获取我拥有的当前脚本并为我提供可用函数的列表,类似于:

>> getAvailableFunctions()
<< func1, func2, func3

我一直在用这种Object.getOwnPropertyNames方法进行调查,但我似乎无法用 Tampermonkey 把它拉出来。

我可以有一些输入吗?

谢谢!

标签: javascriptgreasemonkeytampermonkey

解决方案


你可以尝试这样的事情:

Object.entries(window).flatMap(([k, v]) => typeof v === "function" ? k : [])

Object.entries获取一个键值对数组,flatMap这里用作组合的filter+ map。这相当于:

Object.entries(window).filter(a => typeof a[1] === "function").map(([k]) => k)

您也可以尝试排除这样的原生函数(在 FF 和 Chrome 上测试):

Object.entries(window)
  .flatMap(([k, v]) => typeof v === "function" && !/{\s*\[native code]\s*}/.test(v) ? k : [])

推荐阅读