多个fbAsyncInit?

In my site I'm using asynchronous loading of the Facebook JS SDK. To actually set it up I use the standard FB.init inside of window.fbAsyncInit function.

However the issue is that in my site this function is on every single page. However when I'm in a subpage I can't directly add to the JS function due to the design of my site, I have to copy and paste the whole function and add my bits.

I don't think multiple fbAsyncInit's are possible, so whats the best way to implement this?

You can use this instead to check if you already have a fbAsyncInit and chain it toghether in that case:

var oldCB = window.fbAsyncInit;
window.fbAsyncInit = function(){
    if(typeof oldCB === 'function'){
        oldCB();
    }
    //Do Something else here
 };

there is a "static" property in fbAsyncInit

Try below

if (window.fbAsyncInit && window.fbAsyncInit.hasRun) {
    // do sth
}

Sometimes the facebook api can call fbAsyncInit before your second fbAsyncInit has even started. This will fix that case:

        if (window.fbAsyncInit.hasRun === true) {
            setup(); // do something
        } else {
            var oldCB = window.fbAsyncInit;
            window.fbAsyncInit = function () {
                if (typeof oldCB === 'function') {
                    oldCB();
                }
                setup(); // do something
            };
        }