FAQ XUL
FAQ XULConsultez toutes les FAQ
Nombre d'auteurs : 2, nombre de questions : 23, dernière mise à jour : 14 juin 2021
Si vous développez un site web avec XUL, les règles de sécurité pour l'utilisation de XMLHttpRequest seront les mêmes que celles pour un site normal,
à savoir vous ne pourrez faire de communication qu'avec votre site.
Lorsque vous êtes en mode chrome (pour les extensions), vous êtes autorisé à contacter un site externe via le XMLHttpRequest d'AJAX.
En prime voici une petite fonction qui vous permettra d'utiliser cette fonctionnalité :
function send
(
url,
data,
method,
sendXML,
objectAsync) {
var xhr =
new XMLHttpRequest
(
);
var res;
if (
sendXML)
{
xhr.overrideMimeType
(
"text/xml"
);
}
if (
objectAsync) {
xhr.
onreadystatechange =
function(
) {
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(
xhr.
readyState ==
4
&&
xhr.
status
==
200
){
if (
sendXML) {
res =
xhr.
responseXML;
}
else {
res =
return xhr.
responseText;
}
objectAsync.do
(
res);
}
}
}
if (
method ==
"POST"
) {
xhr.open
(
"POST"
,
url,
false);
xhr.setRequestHeader
(
"Content-type"
,
"application/x-www-form-urlencoded"
);
xhr.send
(
data);
}
else {
if (
data ==
""
) {
xhr.open
(
"GET"
,
url,
false);
}
else {
xhr.open
(
"GET"
,
url+
'?'
+
data,
false);
}
xhr.send
(
null);
}
if (
objectAsync ==
null) {
if (
sendXML) {
res =
xhr.
responseXML;
}
else {
res =
xhr.
responseText;
}
return res;
}
}
Prototype est une bibliothèque Javascript de bas niveau permettant de simplifier l'écriture du code Javascript. La bibliothèque telle que diffusée ne fonctionne pas dans une application XUL car la variable Function.prototype est accessible en lecture seule. Ce bug (ou feature au choix) existe dans Firefox 1 et 2 (mais est apparement corrigé en 3). Il faut donc redefinir Function.prototype.bind.