Hallo,
ich bin auf der Suche nach einer Lösung für folgendes Problem. Ich habe eine Java-Anwendung welche in unregelmäßigen Abständen eine URL in eine Datei schreibt. Für den Firefox habe ich nun eine Erweiterung geschrieben, welche die datei ausliest und die URL aufruft. Dieser Teil klappt auch wunderbar. Schreiben in die Datei, auslesen und URL anfragen + anzeigen.
Da die Java-Anwendung immer wieder eine andere URL in die Datei schreibt, soll der firefox sich ebenfalls immer wieder aktualisieren. Um das zu erreichen, benutze ich setIntervall(). Solange ich die URL nur über ein Alert ausgebe funktioniert es auch wunderbar. Die Java-Anwendung ändert die URL in der Datei und der Firefox gibt die URL über ein Alert aus. Das geht aber eben auch nur über alerts. Sobald ich die Webseite anzeigen lassen möchte funktioniert es genau ein mal. Woran liegt es?
//Öffnet die Datei, liest die URL aus und versucht diese anzuzeigen
function call(){
var file = Components.classes["@mozilla.org/file/directory_service;1"]
.getService(Components.interfaces.nsIProperties)
.get("TmpD", Components.interfaces.nsIFile);
file.append("testTest.tmp");
var ios = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService);
var fileURI = ios.newFileURI(file);
var channel = ios.newChannelFromURI(fileURI);
var observer = {
onStreamComplete : function(aLoader, aContext, aStatus, aLength, aResult)
{
var unicodeConverter =
Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
.createInstance(Components.interfaces
.nsIScriptableUnicodeConverter);
unicodeConverter.charset = "UTF-8";
var url= unicodeConverter.convertFromByteArray(aResult, aLength);
window.location.href=url;
}
};
var sl = Components.classes["@mozilla.org/network/stream-loader;1"]
.createInstance(Components.interfaces.nsIStreamLoader);
sl.init(channel, observer, null);
}
//Aufruf von Call
z = setInterval("call();",2000); //Alle zwei Sekunden soll die Website geändert werden.
Alles anzeigen
Schonmal vielen Dank für eure Hilfe.