Hallo,
ich habe mir eine Internet Explorer Extension in der Windows Registry angelegt um einen Button in der IE Menuleiste anzuzeigen.
Im Schlüssel 'Script' habe ich mein Javascript test.js eingetragen, dass ausgeführt wird, wenn ich den Button drücke. Soweit funktioniert alles, wenn ich den Button drücke wird über alert('TEST'); der Text 'TEST' ausgegeben. Nun mein Problem:
Ich habe eine simple AJAX Funktion sendRequest() geschrieben, die einen Request auf eine PHP Seite durchführt.
Die PHP Seite liefert nur den über POST gesendeten Wert zurück.
Wenn ich die Funktion sendRequest(...) aus einer 'normalen' HTML Seite aufrufe funktioniert alles, der Wert TEST123 wird über alert (in onReadyStateChange) angezeigt.
Wenn ich dieselbe Funktion über meinen Button ausführen lasse, kommt die AJAX Funktion nicht weiter als die Anfrage an den Server zu senden.
(readyState ist READY_STATE_LOADING).
Ich bekomme aber nie den READY_STATE_COMPLETE :-(
Nun meine Frage kann ich kein AJAX nutzen wenn ich mein JavaScript über einen IE Button starte?
Jede Art von Hilfe ist herzlich willkommen, danke im voraus!
Hier meine AJAX Funktionen:
var READY_STATE_UNINITIALIZED = 0;
var READY_STATE_LOADING = 1;
var READY_STATE_LOADED = 2;
var READY_STATE_INTERACTIVE = 3;
var READY_STATE_COMPLETE = 4;
var req = null;
function sendRequest(url, params, HttpMethod)
{
if (!HttpMethod)
HttpMethod = "GET";
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req)
{
req.onreadystatechange = onReadyStateChange;
req.onerror = onError;
req.open(HttpMethod, url, true);
req.setRequestHeader
("Content-Type",
"Application/x-www-form-urlencoded");
req.send(params);
}
}
function onReadyStateChange()
{
var ready = req.readyState;
var data = null;
alert(ready);
if (ready == READY_STATE_COMPLETE)
{
data = req.responseText;
alert(data);
}
}
sendRequest("test.php", "testparam=TEST123", "POST");