Ok, ci sono QUASI riuscito. Dico quasi perche' adesso sono arrivato al punto in cui devo fare questo perche' tutto funzioni:
Codice PHP:
<head>
<script type="text/javascript" src="resources/js/js-loader.js"></script>
<script type="text/javascript">
/* <![CDATA[ */
JSLOADER.load ('resources/js/json-support.js', JSLOADER.head);
JSLOADER.load (JSLOADER.jquery, JSLOADER.head);
JSLOADER.load (JSLOADER.jqueryUI, JSLOADER.head);
JSLOADER.load ("resources/js/utilities/jquery.url.js", JSLOADER.head);
JSLOADER.load (JSLOADER.hoverIntent, JSLOADER.head);
JSLOADER.load ("resources/js/main.js", JSLOADER.head);
/* ]]> */
</script>
<script type="text/javascript" src="resources/js/editor-views.js"></script>
</head>
quindi non ho ottenuto nulla perche' comunque devo fare quelle chiamate al mio loader nell'HTML della pagina. Immagino che non importi tanto l'ordine in cui gli elementi script sono nel DOM quanto l'ordine in cui il browser li legge la prima volta. Essendo quindi
codice:
<script type="text/javascript" src="resources/js/editor-views.js"></script>
li' fin dall'inizio non importa se gli altri tag script caricati dal loader vengono di fatto messo prima. Quindi se le chiamate al loader vengono fatte anch'esse all'inizio di editor-views.js e subito dopo comincio ad usare jQuery la cosa non funziona.
Il codice del mio loader, che probabilmente si puo' migliorare e' questo:
Codice PHP:
var JSLOADER = {};
JSLOADER.load = function (jsname, pos) {
var th = document.getElementsByTagName(pos)[0];
var s = document.createElement('script');
s.setAttribute('type','text/javascript');
s.setAttribute('src',jsname);
if (!JSLOADER.firstLoaded) {
JSLOADER.lastInserted = th.insertBefore(s, document.getElementsByTagName ("script")[0]);
JSLOADER.firstLoaded = true;
}
else {
//insertAfter
JSLOADER.lastInserted = th.insertBefore (s, JSLOADER.lastInserted.nextSibling);
}
};
JSLOADER.head = "head";
JSLOADER.body = "body";
JSLOADER.jquery = "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js";
JSLOADER.jqueryUI = "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js";
JSLOADER.hoverIntent = "http://cherne.net/brian/resources/jquery.hoverIntent.minified.js";
JSLOADER.firstLoaded = false;
JSLOADER.lastInserted = null;
nessun javascript Guru che abbia un'idea su come posso risolvere?