2012-04-23 15 views
7

मैं एक समारोह है कि फेसबुक के समाचार फ़ीड लोड करता है में हुक करने की कोशिश कर रहा हूँ:जावास्क्रिप्ट फ़ंक्शन कॉल में हुक करने की आवश्यकता है, ऐसा करने के किसी भी तरीके से?

UIIntentionalStream.instance && UIIntentionalStream.instance.loadOlderPosts(); 
Facebook.com पर

क्या मेरे पास अपनी खुद की जावास्क्रिप्ट के साथ ऐसा करने का कोई तरीका है? असल में, मुझे किसी प्रकार का कॉलबैक होना चाहिए - जब उस फ़ंक्शन को कॉल किया जाता है, तो मैं अपने स्वयं के फ़ंक्शन को कॉल करना चाहता हूं। इस तरह

उत्तर

7

कोशिश कुछ:

var old = UIIntentionalStream.instance.loadOlderPosts; 
UIIntentionalStream.instance.loadOlderPosts = function() { 
    // hook before call 
    old(); 
    // hook after call 
}; 

बस में हुक भी आप चाहते हैं, पहले या मूल कार्य के कॉल के बाद।

18

एक और पूरी विधि हो जाएगा:

var old = UIIntentionalStream.instance.loadOlderPosts; 
UIIntentionalStream.instance.loadOlderPosts = function() { 
    // hook before call 
    var ret = old.apply(this, arguments); 
    // hook after call 
    return ret; 
}; 

यह है कि यदि loadOlderPosts कोई पैरामीटर की उम्मीद कर या इस उपयोग कर रहा है, यह उनमें से सही संस्करण के साथ-साथ अगर फोन करने वाले किसी भी वापसी मान उम्मीद मिल जाएगा सुनिश्चित करती है यह

3

पिछली पोस्टों पर विस्तारित करेगा: मैंने एक ऐसा फ़ंक्शन बनाया है जिसे आप इस "हुकिंग" क्रिया को करने के लिए कॉल कर सकते हैं।

hookFunction(UIIntentionalStream.instance, 'loadOlderPosts', function(){ 
    /* This anonymous function gets called after UIIntentionalStream.instance.loadOlderPosts() has finished */ 
    doMyCustomStuff(); 
}); 



// Define this function so you can reuse it later and keep your overrides "cleaner" 
function hookFunction(object, functionName, callback) { 
    (function(originalFunction) { 
     object[functionName] = function() { 
      var returnValue = originalFunction.apply(this, arguments); 

      callback.apply(this, [returnValue, originalFunction, arguments]); 

      return returnValue; 
     }; 
    }(object[functionName])); 
} 

बोनस: आपको अच्छी माप के लिए यह सब बंद करना चाहिए।

संबंधित मुद्दे

 संबंधित मुद्दे