Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe ein kleines Problem mit einer Klasse. Dies Klasse funktioniert super im IE aber nicht in andere Browser.
Hier die Fehlermeldung:
java.lang.ClassCastException
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Die Klasse ist eine URL fetcher, und soll eine HTML Seite suchen und mir den source zurückgeben.
Klappt auch in IE, aber nicht in Opera, Firefox und Netscape. Habe immer die letze version installiert.
Kann mir jemand sagen was da nicht geht ?
Hier die Klasse:
Code:
import java.net.URL;
import java.io.*;
public class HTTPFetch
{
public static void main(String[] args)
{
}
public String getURL(String url)
{
try
{
URL u = new URL(url);
DataInputStream dis = new DataInputStream(u.openConnection().getInputStream());
String input = "";
String inline = null;
while ((inline = dis.readLine()) != null)
{
input += inline + "\n";
}
dis.close();
return input;
}
catch (Exception e) {
return e.toString();
}
}
}
Was Du geschrieben hast, ist kein Applet. Ein Applet erbt immer von java.applet.Applet und sollte mindestens die init()-Methode überschreiben.
Applets konnen sich (unsigniert) nur mit dem Rechner verbinden, von dem sie herunter geladen wurden.
Ich habe den Code von Deinem Programm so umgebaut, dass er im Rahmen eines unsignierten Applets funktioniert.
Code:
import java.applet.Applet;
import java.awt.*;
import java.net.URL;
import java.io.*;
public class HTTPFetch extends Applet {
private TextArea ta;
public void init() {
setLayout(new BorderLayout());
ta = new TextArea("HTTPFetch\n",0,0,TextArea.SCROLLBARS_VERTICAL_ONLY);
add(ta, BorderLayout.CENTER);
String urlParam = getParameter("url");
if(urlParam == null)
ta.append("In der HTML-Datei ist der Parameter \"url\" zu setzen!\nBeispiel:\n<param name=url value=\"http://www.mydomain.com/index.html\">");
else {
try {
ta.append("Quelltext von "+urlParam+":\n");
ta.append("\n"+getURL(urlParam));
}
catch(java.security.AccessControlException e) {
ta.setText("Eine Verbindung zum angegebenen URL ist nicht möglich!\nEs ist nur möglich, eine Verbindung zu dem Rechner herzustellen, von dem dieses Applet geladen wurde!");
}
}
}
private String getURL(String url) {
String input = "";
try {
URL u = new URL(url);
DataInputStream dis = new DataInputStream(u.openConnection().getInputStream());
String inline = null;
while ((inline = dis.readLine()) != null) {
input += inline + "\n";
}
dis.close();
}
catch (IOException e) {
ta.setText(e.toString());
}
return input;
}
}
Sorry, an dieser Stelle muss ich passen. Ich weiß nicht viel über JavaScript.
Ich weiß auch nicht, ob ein Applet so einfach in eine HTML-Datei schreiben kann. Ich habe es noch nicht versucht. Zumindest ist unsignierten Applets der Zugriff auf Datei- und Verzeichnisebene aus Sicherheitsgründen verboten.
Wenn das Applet doch irgendwie in der HTML-Datei den Inhalt der div-Tags setzen kann, dann würde ich auf jeden Fall versuchen mit Platzhaltern arbeiten, die leicht gefunden und ersetzt werden können.
Mehr kann ich im Moment nicht sagen.
Du solltest mal das Forum mit der Suchfunktion durch stöbern, vielleicht findest Du ja etwas, was in die Richtung geht und Dich einer Lösung näher bringt.