After over an hour of trying to get it to work I\'m thinking it\'s because of cross domain policies, but I really thought this would work. I can\'t find a lot of info on it
You just have a minor error:
fileref.onload = callback();
This will call callback immediately and assign its return value to fileref.onload.
callback
fileref.onload
It should be
fileref.onload = callback;
You also should add the handler before you set the source (just in case).
DEMO