获取Tampermonkey上可用功能的列表

时间:2019-05-24 18:08:36

标签: javascript greasemonkey tampermonkey

我目前有一个Tampermonkey脚本,它带有一系列上下文相关的函数,这些函数作为选项在特定页面上运行时提供。

我的代码的简化版本是:

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

我希望有一些功能可以使用当前拥有的脚本,并为我提供可用功能的列表,大致类似于:

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

我一直在研究Object.getOwnPropertyNames方法,但是我似乎无法使用Tampermonkey将其淘汰。

我可以输入一些信息吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

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 : [])