====== JQuery getScript not working in Cordova ======
Creating Cordova (formerly known as PhoneGap ) application aimed to work with 1.6+ Android I've faced strange problem. Android 4.0.* versions devices does not load script via jQuery command ''getScript''. And this was only in 4.0.* version devices
== ==
$.getScript("file.js", function(){
/*
* CODE executed after
* file is fully loaded
*/
});
This would not be a problem, if all logic would be in one file. But this greatly hardens development and maintenance.
I have solved it by using adequate function, that loads JS file. Here is code (I presume you are already declared jQuery). Add this to **document.ready** declaration
$.fn.getScript = function(src, callback) {
var s = document.createElement('script');
document.getElementsByTagName('head')[0].appendChild(s);
s.onload = function() {
//callback if existent.
if (typeof callback == "function") callback();
callback = null;
}
s.onreadystatechange = function() {
if (s.readyState == 4 || s.readyState == "complete") {
if (typeof callback == "function") callback();
callback = null; // Wipe callback, to prevent multiple calls.
}
}
s.src = src;
}
Easy switching is here: just add **.fn** to your $.getScript declaration to be like so:
$.fn.getScript("file.js", function(){
/*
* CODE executed after
* file is fully loaded
*
* Notice fn in declaration
*/
});
{{tag>tutorial cordova phonegap jquery}}
~~DISCUSSION~~