Forums d'assistance et de discussion sur les logiciels produits par Mozilla ou créés à partir des technologies Mozilla. Ce site ne dépend pas de la fondation Mozilla et est maintenu par un collectif de bénévoles.
HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
<html>
<head>
<title tal:content="template/title">The title</title>
<script language='javascript' type='text/javascript'>
var xmlHttp = false;
init();
function init(){
/* Create a new XMLHttpRequest object to talk to the Web server */
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
@end @*/
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
}
function callServer() {
if (xmlHttp.readyState!=0)
{
xmlHttp.onreadystatechange = function() {};
xmlHttp.abort();
xmlHttp = false;
init();
}
// Build the URL to connect to
var url = "http://localhost/wnl/subscribe.php";
// Open a connection to the server
xmlHttp.open("GET", url, true);
// Setup a function for the server to run when it's done
xmlHttp.onreadystatechange = updatePage;
// Send the request
xmlHttp.send(null);
}
function updatePage() {
if (xmlHttp.readyState == 4) {
response = xmlHttp.responseText;
document.getElementById("message").innerHTML = '';
document.getElementById("appli").innerHTML = response;
if (response=='') document.getElementById("appli").innerHTML = '<br><br>Aucun resultat.';
}
}
</script>
</head>
<body>
<span id="message">loading...</span>
<div id="appli"></div>
<img src="Zeuro/Image/Verif" onload="callServer()" />
</body>
</html>
Fonctionne très bien sous IE, mais pas sous FireFox 2.0
Erreur javascript sous FireFox 2.0 : uncaught exception: Permission refusée d'appeler la méthode XMLHttpRequest.open
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) Gecko/20061010 Firefox/2.0
Tu devrais regarder dans ta console d'erreurs pour voir les erreurs javascript. EDIT : oups, j'ai pas lu tout le post de départ, car l'erreur était indiquée... désolé
Quoiqu'il en soit, je n'ai pas vérifié le reste du code, mais il ne faut jamais appeler une fonction directement dans le corps du javascript, donc ton appel init(); doit être remplacé plutot par
qui te fera un appel asynchrone de ta fonction d'initialisation. La raison est qu'au moment de l'appel, tous les objets DOM doivent être chargés, ce qui est surement le cas avec IE mais pas avec Firefox.
Dernière modification par chBok le 07 nov. 2006, 17:42, modifié 1 fois.
On ne peut lire des fichier que sur le serveur sur lequel se trouve la page en cours...
Ah non, j'en doute. AJAX permet justement à une page Web de lire des données d'un lien URL quelconque.
Comme tu as placé un onload sur ton image, je persiste à penser que l'appel de ton script intervient trop trop par rapport au chargement asynchrone de la page Web.
Je pense aussi que tu dois appeler init dans l'évènement onload de body.
Autre chose : sous IE tu appelles le contrôle ActiveX même si XMLHttpRequest existe en tant qu'objet natif (c'est le cas dans IE7). Tu devrais placer le
Pour des raisons de sécurité, il n'est pas possible d'appeler des pages se situant sur un autre domaine. Veillez à utiliser le nom de domaine exact sur toutes vos pages ou vous obtiendrez une erreur 'permission denied' à l'appel d'open(). Une erreur courante est de charger le site via domaine.tld, mais d'essayer d'appeler des pages avec www.domain.tld.
La page qui contient le code javascript est sur localhost:8080
La page appelée par le javascript (http://localhost/wnl/subscribe.php) est sur localhost (donc sur le port 80).
Il s'agit bien du même domaine, mais sur un port différent.
Est-ce là le problème ?
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) Gecko/20061010 Firefox/2.0