Использование FB.ui для «apprequest» и «feed» - ошибка JS - c не определен - PullRequest
0 голосов
/ 18 июля 2011

Я разработал два приложения с FB.ui() вызовами для отправки запросов приложений и просьбы опубликовать обновление статуса с параметрами «feed». Несколько месяцев он работал нормально, но на прошлой неделе я обнаружил ошибку:

c - неопределенная строка 18: FB.provide ( 'Дом', {containsCss: функция ... (oldonload);} еще oldonload ();};}) (); Файл: all.js

Это из файла all.js, который я импортирую, чтобы использовать объект FB из URL: http://connect.facebook.net/fr_FR/all.js (я также пытался http://connect.facebook.net/en_US/all.js)

Это часть кода, которая вызывает ошибку:

window.addEvent('domready', function() {

    if(jsonRedirection.redirect == false) {

        FB.init({
          appId  : FBappId,
          status : true, // check login status
          cookie : true, // enable cookies to allow the server to access the session
          xfbml  : true  // parse XFBML
        });

    } 

});

function addFriends()
{
    FB.ui({
        method: 'apprequests',
        message: 'Test'
        },
        function(response) {
            if(response != null) {
                alert('ok');
            }
        }
    );
}

Я проверяю свой appId и у меня есть div "fb-root", прежде чем я вызываю свою функцию addFriends ...

Ответы [ 3 ]

1 голос
/ 10 ноября 2011

Проблема в прототипе функции ..

Function.implement({
extend: function(properties){
    for (var property in properties) this[property] = properties[property];
    return this;
},

create: function(options){ 

И функция FB SDK:

create:function(c,h){var e=window.FB,d=c?c.split('.'):[],a=d.length;for(var b=0;b<a;b++){var g=d[b];var f=e[g];if(!f){f=(h&&b+1==a)?h:{};e[g]=f;}e=f;}return e;}

Решение: В mootools переименуйте "create" в "create2", затем замените все "create (" на "create2 ("

Это ужасно .. но, работает ..

1 голос
/ 04 августа 2011

"c не определено" - это происходит из-за конфликта mootools. В несжатом файле mootools есть функция «Function.implement ({». Вы можете решить проблему, скрыв это.

Дайте мне знать, если вы получите эту работу.

Чтобы быть точным. С In, Function.implement ({ будет "create: function (options) {". Просто переименуйте «create» в «Create». т.е. сделать С - заглавной буквой. Надеюсь, это решит проблему.

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

MooTools версии 1.4.3 решает эту проблему - вы можете скачать ее с Скачать MooTools 1.4.3

...