سؤال

    String.prototype.getLanguage = function() {
        $.getJSON('http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q=' + this + '&callback=?',
            function(json) {
               return json.responseData.language;
            });
    };

كيف يمكنني إرجاع القيمة إلى المتصل قيمة ؟ شكرا

تحرير: لقد حاولت هذه:

    String.prototype.getLanguage = function() {
        var returnValue = null;

        $.getJSON('http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q=' + this + '&callback=?',
            function(json) {
               returnValue = json.responseData.language;
            });

        return returnValue;
    };

لكنه لا يعمل أيضا.فإنها ترجع فارغة.

هل كانت مفيدة؟

المحلول

أفترض كنت ترغب في استخدام متزامن مع الحدث بحيث سلسلة الخاص بك.النموذج الأولي.getLanguage() وظيفة فقط عودة سلمان.للأسف لا يمكنك أن تفعل ذلك مع مسج من بعيد API.

بقدر ما أعرف مسج لا يدعم متزامن مدعوم الكائنات, و حتى لو فعلت ذلك, كنت بحاجة إلى أن يكون الوكيل على الخادم الخاص بك لجعل طلب مزامنة مع تجنب القيود المفروضة على نفس سياسة المنشأ.

ومع ذلك ، يمكنك فعل ما تريد باستخدام مسج دعم JSONP.إذا كنا مجرد كتابة السلسلة.النموذج الأولي.getLanguage() دعم الاستدعاء:

String.prototype.getLanguage = function( callback ) {
    var thisObj = this;
    var url = 'http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q=' + this + '&callback=?';

    $.getJSON( url,function(json) {
                callback.call(thisObj,json.responseData.language);
    });
}

ثم يمكننا استخدام الدالة على هذا النحو:

'this is my string'.getLanguage( function( language ) {
    //Do what you want with the result here, but keep in mind that it is async!
    alert(this);
    alert(language);
});

نصائح أخرى

var test = function(fun)
{

String.prototype.getLanguage = function() {
        .getJSON('http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q=' + this + '&callback=?',
            function(json) {
              fun.call(json.responseData.language);
            });
    };

};

test(retCall);

var retCall = function(xjson){
   alert(xjson);
};
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top