JQuery междоменный JSONP в расширении / надстройке FF5, обратный вызов не определен - PullRequest
3 голосов
/ 26 июля 2011

Привет. Я пытаюсь создать расширение для Firefox5, в котором код расширения внедряет два сценария при запуске загрузки страницы.

var data = require("self").data;
var pageMod = require("page-mod");
pageMod.PageMod({
        include: ['*'],
            contentScriptWhen: "start",
            contentScriptFile:
        [data.url("jquery.min.js"), data.url("js_include.js")],
            });

Скрипт js_include.js выполняет междоменный вызов jsonp JQuery с глобальной функцией обратного вызова 'onJSONPLoad' и имеет код, похожий на:

window.onJSONPLoad = function(data) {
      //do something here...
}

jQuery(function(){
        jQuery.ajax({
                url: 'http://localhost:8000/getvos/',
                    type: 'GET',
                    data: 'url='+window.location.href,
                    dataType: 'jsonp',
                    jsonp: 'jsonpCallback',
                    jsonpCallback: 'onJSONPLoad'
            });

    });

Это работает, если я делаю это на странице, но не когда я пытаюсь сделать это в дополнении. Firebug показывает, что звонок сделан, ответ получен, я тоже вижу ответ в консоли. Однако функция onJSONPLoad никогда не выполняется, и все, что я получаю, это «onJSONPLoad не определен».

Я видел другие вопросы / ответы по SO, но они дошли до того, что просили, чтобы onJSONPLoad был глобальным, что я уже сделал, но он все равно не работает.

Любая помощь?

1 Ответ

0 голосов
/ 02 февраля 2012

попробуйте это: jsonpCallback: 'window.onJSONPLoad'

...