Grab Facebook Graph share count and abbreviate it
My first remark is that you're explicitely requiring jQuery for your code to execute but only use it for jQuery.getJSON(), while it may be used elsewhere.

So instead of:

        } else {
        var c = document.getElementsByClassName('box-counter');
        numb = c.length;
        for (var i = 0; i &lt; numb; i++) {
            var tempURL = c[i].parentNode.attributes['data-url'].nodeValue;
            jQuery.getJSON('http://graph.facebook.com/'+tempURL,function(data) {
                theShares.push(data.shares);
                insertDuring();
            });
        }
    }


you may simply write:

        } else {
        jQuery('.box-counter').each( function(i) {
            jQuery.getJSON(
                'http://graph.facebook.com/' + this.parent().data('url'),
                function(data) {
                  theShares.push(data.shares);
                  insertDuring();
                }
            );
        }
    }


You may also replace this:

function insertDuring(){
    if(numb == theShares.length){
        var c = document.getElementsByClassName('box-counter');
        for (var i = 0; i &lt; numb; i++) {
            // your internal code here...
        }
    }
}


by this simpler code:

function insertDuring(){
    jQuery('.box-counter').each( function(i) {
        // your internal code here, unchanged...
        this.innerHTML = theNewShares[i];
    }
}


Now regarding your abridgeNumbers() function:

function abridgeNumbers(theString,theLimit,theAbbrev,i,k){
    for (var j = 0; j &lt; theLimit; j++) {
        if(typeof theNewShares[i] === 'undefined'){
            theNewShares[i] = theString.charAt(j);
        } else {
            if(k == true){
                theNewShares[i] = theNewShares[i] +"."+theString.charAt(j);
            } else {
                theNewShares[i] = theNewShares[i] + theString.charAt(j);
            }
        }
    };
    theNewShares[i] = theNewShares[i] + theAbbrev;
}


You can simplify the code using the ternary operator, so improving readability, like this:

function abridgeNumbers(theString, theLimit, theAbbrev, i, k) {
    for (var j = 0; j &lt; theLimit; j++) {
        if(typeof theNewShares[i] === 'undefined') {
            theNewShares[i] = theString.charAt(j);
        } else {
            theNewShares[i] += (k ? "." :"") + theString.charAt(j);
        }
    }
    theNewShares[i] += theAbbrev;
}


(BTW you may notice that the ";" is not needed at the end of the for block)

In a more advanced way you may also increase performance. In the code above, each step executes the test about theNewShares[i], while it is useful only once. So you may deport it before the loop, using a short notation which ensures to define theNewShares[i] as empty string when it is yet undefined.

function abridgeNumbers(theString, theLimit, theAbbrev, i, k) {
    theNewShares[i] |= '';
    for (var j = 0; j &lt; theLimit; j++) {
        theNewShares[i] += (k ? "." :"") + theString.charAt(j);
    }
    theNewShares[i] += theAbbrev;
}


Finally beyond those purely technical aspects you may look at my second answer below about how to enhance the "conversion" strategy to get friendly representation of the numbers.