Zajmuję się tworzeniem aplikacji przy użyciu PhoneGap i jQuery Mobile.
Teraz, gdy strona zostanie załadowana, chcę załadować script(.js file)
. Zasadniczo onDeviceReady
lub $(document).ready()
. Jak to zrobić?
Zajmuję się tworzeniem aplikacji przy użyciu PhoneGap i jQuery Mobile.
Teraz, gdy strona zostanie załadowana, chcę załadować script(.js file)
. Zasadniczo onDeviceReady
lub $(document).ready()
. Jak to zrobić?
//wait for document.ready to fire
$(function() {
//then load the JavaScript file
$.getScript('script.js');
});
http://api.jquery.com/jquery.getscript
//create a callback function
function myCallback() {
//create a script element and set it's type and async attributes
var script = document.createElement('script'); script.type = 'text/javascript'; script.async = true;
//set the source of the script element
script.src = 'script.js';
//add the script element to the DOM
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(script, s);
}
//add event listener for the deviceready function to run our callback function
document.addEventListener("deviceready", myCallback, false);
http://docs.phonegap.com/en/1.4.1/phonegap_events_events.md.html#deviceready
drugi kod ten fragment jest nieco zmodyfikowaną wersją kodu Google Analytics, wykorzystywane, aby dodać skrypt do DOM asynchronicznie.
UPDATE
Można również ustawić atrybut <script>
tagu do true
defer
i nie będą realizowane dopiero po DOM został przygotowany. Zobacz dokumentację tutaj: https://developer.mozilla.org/en-US/docs/HTML/Element/Script
Dzięki Jasper.Answer jest precyzyjny ...: D –
Ja też miałem problem z odświeżaniem IE8 podczas odświeżania. Używanie wywołania $ (document) .ready() jest tym, co naprawiło to dla mnie. Thx za odpowiedź! – PhilNicholas
NB: getScript jest asynchroniczny, więc wywołanie funkcji zadeklarowanej w wywołanym skrypcie może spowodować błędy "niezdefiniowane". Zobacz: http://stackoverflow.com/questions/1130921/is-the-callback-on-jquerys-getscript-unreliable- or-am-i-doing-something-wrong – Costa