When I try to load this script in Firefox, it gives me this error: Reference Error: onListFriends is not defined.
The code works fine in Safari and Chrome.
listFriends(onListFriends);
function onListFriends() {
console.log("friends were listed.");
setOnline();
}
And here is the listFriends function defined later in the file:
function listFriends(callback) {
FB.api(
"me/friends",
function (response) {
console.log("Got FB.api response");
var numOnline = 0;
var numFriends = response.data.length;
for (var i = 0; i < numFriends; i++) {
isOnline(i, response.data, gotOnline);
var callbackInc = 0;
function callbackIfYouCan(callback) {
callbackInc++;
if (callbackInc == numFriends) {
interiorCallback(callback);
}
}
function gotOnline(res, ind, data) {
console.log("Got response from isOnline: " + res);
var id = data[ind].id;
var checkbox = document.createElement('input');
checkbox.type = "checkbox";
checkbox.name = "friends";
checkbox.id = id;
checkbox.value = data[ind].name;
console.log("For user " + checkbox.value);
var label = document.createElement('label');
label.htmlFor = id;
label.appendChild(document.createTextNode(data[ind].name));
if (res == 1) {
document.getElementById("online").appendChild(checkbox);
document.getElementById("online").appendChild(label);
document.getElementById("online").appendChild(document.createElement('br'));
numOnline++;
} else {
document.getElementById("offline").appendChild(checkbox);
document.getElementById("offline").appendChild(label);
document.getElementById("offline").appendChild(document.createElement('br'));
}
callbackIfYouCan(callback);
}
}
function interiorCallback(callback) {
if (numOnline > 0) {
var textField = document.createElement('input');
textField.setAttribute('type', 'text');
textField.id = "message";
textField.value = "I would like to hang out at this place in 15 minutes.";
var button = document.createElement('button');
button.setAttribute('type', 'button');
console.log("Created tagging button.");
button.onclick = function () {
console.log("Tagging button pressed.");
getIdsFromCheckboxes();
}
button.innerHTML = "Tag your friends.";
document.getElementById("online").appendChild(textField);
document.getElementById("online").appendChild(button);
}
callback();
}
});
}
What is the difference between the way Firefox and Chrome loads this code? Any help would be appreciated.