烈之斩
火狐狸
火狐狸
  • UID35302
  • 注册日期2011-02-19
  • 最后登录2021-09-19
  • 发帖数236
  • 经验222枚
  • 威望0点
  • 贡献值118点
  • 好评度23点
  • 社区居民
  • 忠实会员
阅读:2443回复:4

Greasemonkey有时无法正常工作

楼主#
更多 发布于:2014-05-22 11:07
最近我有2个脚本经常工作不正常,打开浏览器控制台(ctrl+shift+J),会捕捉到诸如此类错误:

Greasemonkey 访问违规:unsafeWindow 无法调用 GM_getValue。
Greasemonkey 访问违规:unsafeWindow 无法调用 GM_xmlhttpRequest。

其中一个脚本是自制的,另外一个脚本是著名的youtube center,github上有相应报错,并不是只有我遇到:
https://github.com/YePpHa/YouTubeCenter/issues/445
https://github.com/YePpHa/YouTubeCenter/issues/379


现在的问题在于,
1. 此问题是30版本之后才开始出现(或者29,不确定);
2. 此问题不是百分百出现;
3. 我可以通过禁用adblockplus、重启、重新启用adblockplus、再重启的方法临时解决,但是过一段时间又会出现

我以“Greasemonkey 访问违规:unsafeWindow 无法调用 GM_getValue。”为关键词没有搜到什么有用的信息
对应的英文是 “Greasemonkey access violation: unsafeWindow cannot call GM_getValue” 基本只能搜到youtube center里的报错……
starrin
小狐狸
小狐狸
  • UID39387
  • 注册日期2013-04-16
  • 最后登录2015-08-30
  • 发帖数21
  • 经验24枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
1楼#
发布于:2014-05-22 11:36
这个问题显然是脚本执行的上下文跑到了unsafewindow里面了,类似于执行了window=unsafeWindow这样的操作。
如果没有用到gm相关函数(比如GM_getValue,GM_setValue,GM_xmlhttpRequest,GM_log)的话这个不会有任何问题,不然的话就……
而且我也完全想不通为什么脚本的上下文会跑到unsafewindow里面去。
文科
千年狐狸
千年狐狸
  • UID39959
  • 注册日期2013-10-17
  • 最后登录2019-07-27
  • 发帖数2069
  • 经验1328枚
  • 威望4点
  • 贡献值340点
  • 好评度256点
  • 最爱沙发
  • 社区居民
  • 忠实会员
2楼#
发布于:2014-05-22 12:46
这脚本的代码竟然都不分行
不会是这个问题吧
烈之斩
火狐狸
火狐狸
  • UID35302
  • 注册日期2011-02-19
  • 最后登录2021-09-19
  • 发帖数236
  • 经验222枚
  • 威望0点
  • 贡献值118点
  • 好评度23点
  • 社区居民
  • 忠实会员
3楼#
发布于:2014-05-22 13:23
故意不分行的,算是一种低级的代码混淆
starrin
小狐狸
小狐狸
  • UID39387
  • 注册日期2013-04-16
  • 最后登录2015-08-30
  • 发帖数21
  • 经验24枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
4楼#
发布于:2014-05-30 03:43
今天遇到了和楼主一模一样的问题,自制的脚本无法正常运行,捕捉到了
Greasemonkey 访问违规:unsafeWindow 无法调用 GM_getValue。
Greasemonkey 访问违规:unsafeWindow 无法调用 GM_xmlhttpRequest。
这样的错误
禁用再重新启用adblock就恢复正常了
这太蠢了
难道和我require了jquery有关
游客

返回顶部