我正在编写用户脚本,其中使用的一个函数在Greasemonkey中无法正常工作,因为Greasemonkey有其限制。该函数对于用户脚本的正常操作并不是必需的,但它可以提高用户体验,所以我不想完全删除它。
我尝试使用try {...} catch() {...}
块,但不幸的是,当它尝试执行该函数时,Greasemonkey会立即停止执行脚本,而不是抛出异常。所以我决定在通过Greasemonkey加载脚本时阻止执行该函数,但我一直找不到这样做的方法。
- 我已经阅读了API参考文档,但没有找到有用的信息。
- 我发现了这个GitHub问题,可以检测Greasemonkey,但似乎现在已经“修复”了。
- 我查看了userscripts-mirror.org上的这个主题,但该主题中提出的解决方案检查GM*函数的存在,这些函数也在大多数其他用户脚本管理器中可用(特别是支持Greasemonkey不支持的函数的Tampermonkey和Violentmonkey)。
我该如何检测当前活动的用户脚本管理器是否为Greasemonkey?
@grant GM_addValueChangeListener
,然后if (typeof GM_addValueChangeListener === 'undefined') ...
就意味着它不是 Tampermonkey。接下来检查一些在 Violentmonkey 中支持但在 GM 中不支持的内容。 - wOxxOm