如何在FF4上访问Greasemonkey中的函数返回值

时间:2011-03-30 23:17:03

标签: javascript greasemonkey firefox4

Firefox 4实现了一个名为XrayWrapper的新安全保护程序,我能够找到的文档对于函数来说,“默认情况下默认情况下将函数创建为安全”

var MyObj = {};
MyObj.Util = {
    myFunc : function() {
        content = '<table class="tupleList"><tr><td>192.168.1.1</td></tr></table>';
        return content;
    }
};

content = MyObj.Util.myFunc();
console.log(content);

在Greasemonkey的世界里,上面的日志记录到Firebug

  

ok / ok:[对象XrayWrapper [对象窗口]]

我的问题是如何获取我在MyObj对象的函数中创建的字符串。我已经尝试打印包装内容的wrappedJSObject属性,但只返回

  

ok / ok:[对象窗口]

任何帮助将不胜感激。此外,是否有更好地解释这些内容的MDN文档链接?

1 个答案:

答案 0 :(得分:2)

问题是您尝试设置window.content这是一个无法更改的窗口属性,然后您返回window.content。正确地确定content变量的范围可以解决您的问题;也重命名变量将解决问题。

如果您对示例代码在网页中的工作方式不同感兴趣,那么它会在GM脚本中运行,这是因为window用于用户脚本is a wrapped object