I am afraid that I do not have a safari browser to test on. However, I did find, when testing with IE and Firefox, that I had to wait some time for some scripts to be loaded.
I used this code *similar* to this to load script files and check the function I want to load exists... sometimes it can take a few iterations before the function is available to the web page.
function importLibFile(file){
var e = document.createElement("script");
e.src = file;
e.type="text/javascript";
document.getElementsByTagName("head")[0].insertBefore(e, document.getElementsByTagName("script")[0]);
}
function loadPackage(func, libFile){
if(document.libraries && !document.libraries[libFile]){
document.libraries[libFile] = true;
importLibFile(libFile);
}
try {
func(null, function(s){alert(s);});
document.getElementsByTagName("body").item(0).innerHTML += (libFile + " package loaded." +"<br/>");
} catch(exception) {
document.getElementsByTagName("body").item(0).innerHTML += ("Loading package " + libFile +"<br/>");
// while appfunction doesn't load
setTimeout(function(){ loadPackage(func, libFile); }, 250);
}
}