Salut,
Je ne te vois pas faire de requête pour accéder au contenu du fichier JS donc c'est normal.
Je te laisse un exemple complet :
index.php
<?php
header('Content-type: text/html; charset=utf-8');
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Exemple</title>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
</body>
</html>
script.js
(function() { var Import = function() {}; var Ip = Import.prototype = {
'tempoXHR': 2500,
connect: function(oElem, sEvType, fn, bCapture) {
return document.addEventListener ?
oElem.addEventListener(sEvType, fn, bCapture):
oElem.attachEvent ?
oElem.attachEvent('on' + sEvType, fn):
false;
},
bXHRSupport: (typeof XMLHttpRequest != "undefined"),
bActiveXSupport: (window.ActiveXObject),
aMSXML: ["Microsoft.XMLHTTP", "MSXML2.XMLHTTP", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.7.0"],
createXHR: function() {
if(Ip.bXHRSupport)
return new XMLHttpRequest;
else if(Ip.bActiveXSupport) {
var iI = Ip.aMSXML.length;
do {
try {
return new ActiveXObject(Ip.aMSXML[--iI]);
}
catch(oError) { }
} while(iI > 0);
throw new Error("L'objet oXHR n'a pas été créé");
}
},
getXHR: function(oReq) {
var oXHR = Ip.createXHR();
var oData = oReq;
oXHR.open(oData['method'], oData['url'], true);
var oTimer = setTimeout(
function() {
if(oXHR)
return oXHR.abort();
},
Ip.tempoXHR
);
oXHR.onreadystatechange = function() {
if(oXHR.readyState == 4)
if(oXHR.status && /200|304/.test(oXHR.status)) {
clearTimeout(oTimer);
oData['response'] = oData['response'] == 'xml' ?
oXHR.responseXML:
oXHR.responseText;
if(oData['callback'])
oData['callback'].call(Ip, oData['response']);
}
}
oXHR.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
return oXHR.send(null);
},
insertJS: function(oResponse) {
var oScript = document.createElement('script');
oScript.setAttribute('type', 'text/javascript');
oScript.text = oResponse;
document.getElementsByTagName('head')[0].appendChild(oScript);
return Ip.testImport();
},
testImport: function() {
maFonctionJS();
alert(maFonctionJS.msg);
},
loadFile: function(sFile) {
return Ip.getXHR(
{
'url': sFile,
'method': 'get',
'response': 'js',
'callback': Ip.insertJS
}
);
},
init: function(sFile) {
return Ip.connect(
window,
'load',
function() {
return Ip.loadFile(sFile);
},
false
);
}
};
var loadJSFile = new Import;
loadJSFile.init('test.js');
})();
test.js
function maFonctionJS() {
maFonctionJS.msg = 'cool !';
return alert('Script chargé');
}
Modifié par koala64 (30 Oct 2007 - 09:52)