Как получить доступ к возвращаемому значению функции в Greasemonkey на FF4 - PullRequest
0 голосов
/ 31 марта 2011

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 обернутого содержимого, но это просто возвращает

ОК / ОК: [Окно объекта]

Любая помощь будет принята с благодарностью. Кроме того, есть ли ссылки на документацию MDN, которые объясняют этот материал лучше?

1 Ответ

2 голосов
/ 01 апреля 2011

Проблема заключалась в том, что вы пытались установить window.content, то есть свойство окна, которое вы не можете изменить, тогда вы вернули window.content. По этой причине правильная область видимости переменной content решает вашу проблему; также переименование переменной решит проблему.

Если вас интересует, почему пример кода работает по-разному на веб-странице, то он работает в сценарии GM, потому что window для пользовательского сценария - это обернутый объект .

...