J'essaie de faire mon propre bookmarklet et j'ai déjà essayé de lire une réponse dans SO mais rien pour répondre à la réaction étrange que j'ai eu de mon script.Ajax dans bookmarklet: action faite mais réponse non donnée
Je fais un appel AJAX de mon bookmarklet, donc je ne le petit truc:
var newScript = document.createElement("script");
newScript.type = "text/javascript";
newScript.src = "http://example.com/urlToMyJS.js";
document.body.appendChild(newScript);
void(0);
Et les urlToMyJS.js est comme ceci:
var u = 'http://example.com/scriptToCall.php';
var request = new XMLHttpRequest();
request.open("GET", u, true);
request.onreadystatechange = function() {
var done = 4, ok = 200;
if (request.readyState == done && request.status == ok) {
if (request.responseText) {
alert(request.responseText);
}
}
};
request.send(null);
La partie bizarre est:
- Le javascript est toujours lancé et scri ptToCall.php est toujours appelé aussi (il enregistre chaque coup)
- Le
alert
montre leresponseText
quand je clique sur le bookmarklet sur example.com - Parfois, sur d'autres sites, le
alert
ne montre rien (mais toujours apparaît) - d'autres fois, le
alert
ne montre même pas ... (mais je dois encore le hit journal ...)
avez-vous une idée pourquoi il fait ça? Et si oui, avez-vous une idée de ce que je pourrais faire pour montrer toujours le responseText
?
Regardez aussi dans CORS - utile ... – mplungjan
hoooo, je ne savais pas à ce sujet. Intéressant, mais il ne fonctionne pas avec IE7 apparemment :-((et FF <3.5) Sauf si vous connaissez un hack? – Shikiryu