idragonet
千年狐狸
千年狐狸
  • UID15658
  • 注册日期2006-11-12
  • 最后登录2017-11-15
  • 发帖数2642
  • 经验162枚
  • 威望1点
  • 贡献值74点
  • 好评度118点
  • 社区居民
阅读:8681回复:4

扩展开发请教:如何避免使用“eval”?

楼主#
更多 发布于:2012-05-21 16:47

Your add-on still uses the 'eval' function unnecessarily, which is something we normally don't accept.


AMO:Editors/EditorGuide/AddonReviews
https://wiki.mozilla.org/AMO:Editors/Ed ... donReviews

Easy DragToGo+  easydragtogo.js代码段:
主要是下面这段(功能:使用自定义代码)使用了eval:

  customCode: function(code, url, src, target, X, Y) {
    eval(code);
  },


改为这样的无法通过,那位大侠知道该如果修改吗?
   customCode: function (code, url, src, target, X, Y) {
        var customFn = new Function("target", "url", "src", "X", "Y", code);
        customFn(target, url, src, X, Y);
    },


dongyuanxun
非常火狐
非常火狐
  • UID28632
  • 注册日期2009-04-19
  • 最后登录2013-02-14
  • 发帖数898
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2012-05-21 16:47

document.getElementById
替代?
Cye3s
千年狐狸
千年狐狸
  • UID155
  • 注册日期2004-11-25
  • 最后登录2024-04-28
  • 发帖数1322
  • 经验95枚
  • 威望0点
  • 贡献值34点
  • 好评度14点
  • 社区居民
  • 忠实会员
2楼#
发布于:2012-05-21 16:47
调用自定义代码?
参考FireGestures的源码看看?
它也有调用代码
我很懒...
idragonet
千年狐狸
千年狐狸
  • UID15658
  • 注册日期2006-11-12
  • 最后登录2017-11-15
  • 发帖数2642
  • 经验162枚
  • 威望1点
  • 贡献值74点
  • 好评度118点
  • 社区居民
3楼#
发布于:2012-05-21 16:47
大概知道方法了:

“Components.utils.evalInSandbox 的使用,这是一种在没有 chrome 权限的情况下用来 eval 代码(如远程代码)的方式。"

Components.utils.evalInSandbox
https://developer.mozilla.org/en/Compon ... lInSandbox
ffpro
火狐狸
火狐狸
  • UID35340
  • 注册日期2011-02-26
  • 最后登录2018-07-18
  • 发帖数289
  • 经验45枚
  • 威望0点
  • 贡献值16点
  • 好评度1点
  • 社区居民
4楼#
发布于:2012-05-21 16:47
支持一下,原来是这个原因导致不能再amo通过,Mozilla的审核原来这么细致?是不是有专门的程序就主要的几点问题自动检测,不然人工应该忙不过来吧
游客

返回顶部