WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   java - anfaengerfrage (http://www.wcm.at/forum/showthread.php?t=103585)

gnagflow 24.07.2003 20:38

java - anfaengerfrage
 
hallo java-freaks!

habe als absolut blutiger anfaenger fuer meine hp das applet "searchtohtml" uebernommen bzw modifiziert, mit dem ich nicht sehr zufrieden bin.
bei der ausgabe der ergebnisse ist die option "match kontext" auf maximal 15 zeichen beschraenkt, das wuerde ich gerne aendern.
ausserdem stuerzen mozilla 1.2.1 und ie6sp1 bei mehrmaliger benutzung des applets ab.
wie kann ich diese schwaechen ausmaerzen bzw. gibt es fuer eine hp auf einem win2k-server eine andere alternative?


code der ausgabeseite:
Code:

...

<!--The query string has the following format (each entry is encoded so that it can
be transferred safely through the URL) :
"?"+[searchwords]+","+["y" if exact, else "n"]+["y" if HTML excluded, else "n"]+
[(match) [file name]+":"+[title]+":"+[anchor]+":"+[doc info]+":"+[match context]]+","...etc.

or in other words:

"?" (searchPhrase) "," ("y" | "n") ("y" | "n") ((matchURI) ":" (title)? ":" (anchor)? ":"
(documentInfo)? ":" (matchContext)? ",")*
-->

<script language="JavaScript">
<!--
var targetFrame = "_self";
var noData_txt = "Es wurden noch keine Daten eingegeben!";
var yourSearch_txt = "Sie suchten nach";
var exactMatches_txt = "nur exakte Resultate";
var excludingHTML_txt = "ohne HTML";
var yielded_txt = "Versuchen Sie folgende Links:";
var closestAnchor_txt = "Wahrscheinlichster Link";
var docInfo_txt = "Dokumenten-Info";
var context_txt = "Zusammenhang";
var noMatches_txt = "Leider kein Treffer!";
var displayAnchor = true;
var displayDocInfo = true;
var displayContext = true;
var preferTitleOnly = false;
var anchorTheLink = false;
function writeResults() {
    var estr = this.location.toString();
    var index = estr.indexOf("?");
    if (index == -1) {
        document.writeln("" + noData_txt + "");
        return;
    }
   
    index++;
    estr = estr.substring(index, estr.length);
    index = estr.indexOf(",");
    document.writeln("<dl>");
    document.write("<dt>" + yourSearch_txt + " " +
                    unescape(estr.substring(0, index)) + "
");
    estr = estr.substring(index + 1, estr.length);
    if (estr.substring(0, 1) == "y")
        document.write(" (" + exactMatches_txt + ") ");
    if (estr.substring(1, 2) == "y")
        document.write(" (" + excludingHTML_txt + ") ");
    document.writeln(yielded_txt + ":

");
    estr = estr.substring(2, estr.length);
    index = -1;
    var numOfMatches = 0;
    var lastindex = 0; //colon
    var clastindex = 0; //comma
    var currdata = "";
    var myUrl = "";
    var myTitle = "";
    var myanchor = "";
    var colonindex = -1;
    var info = "";
    var context = "";
    var anchor = "";
    while ((index = estr.indexOf(",", index + 1)) != -1) {
        currdata = estr.substring(clastindex, index);
        clastindex = index + 1;
        colonindex = currdata.indexOf(":");
        if (colonindex != -1) {
            numOfMatches++;
       

            myUrl = unescape(currdata.substring(0, colonindex));
     
            lastindex = colonindex + 1;
            colonindex = currdata.indexOf(":", lastindex);
           
            myTitle = unescape(currdata.substring(lastindex, colonindex));
           
           
            lastindex = colonindex + 1;
            colonindex = currdata.indexOf(":", lastindex);
            anchor = unescape(currdata.substring(lastindex, colonindex));
           
            if (anchorTheLink && anchor.length > 0) {
                myUrl += "#" + anchor;
            }
           
            document.write("<dd><a href=\""+myUrl+"\" target=\"" +
                            targetFrame + "\">" + myTitle + " ");
            if (!preferTitleOnly || myTitle.length == 0) {
                document.write("(" + myUrl + ")");
            }
               
            document.write("</a>");


            if (anchor.length > 0 && displayAnchor && !anchorTheLink)
                document.write(" <a href=\""+myUrl+"#"+anchor+"\" target=\"" + targetFrame + "\">[" +    closestAnchor_txt +"]</a>");
            document.writeln("
");
     
           
            lastindex = colonindex + 1;
            colonindex = currdata.indexOf(":", lastindex);
            info = unescape(currdata.substring(lastindex, colonindex));
            document.write("");
            if (info.length > 0 && displayDocInfo)
                document.write("" + docInfo_txt + ": "+info+"");
       
            //Get the match context
            lastindex = colonindex+1;
            context = unescape(currdata.substring(lastindex, currdata.length));
            if (context.length > 0 && displayContext)
                document.writeln("" + context_txt + ": \""+context+"\"");
            document.write("
");
            document.write("

");
        }
    }
    if (numOfMatches == 0)
        document.writeln("&lt;" + noMatches_txt + "&gt;");
    document.writeln("</dl>");
}

//-->
...

der hund muesste bei
Code:

... //Get the match context ...
begraben sein, oder?

danke fuer eure hilfe!

Who-T 24.07.2003 21:02

just4info

java != javascript
und ein applet ist eine spezielle java klasse

das was du hier hast ist javascript code

gnagflow 25.07.2003 09:19

Zitat:

Original geschrieben von Who-T
just4info

java != javascript
und ein applet ist eine spezielle java klasse

das was du hier hast ist javascript code

danke fuer die info ;)
leider bringt mich das nicht weiter. was ist falsch an dem code?

jak 28.07.2003 15:00

1.) Poste vielleicht eimal die Ausgabe die erzeugt wird.
2.) Je mehr Code desto unwahrscheinlicher ist es, daß sich jemand einliest. Am besten ist es im Normalfall
.) Auftrennen des Codes in Unterfunktionen
.) Eingrenzen des Fehlers

Nebenbei: Der Code macht bei jedem Schleifendurchlauf ein

ohne </p> und ein <dd> ohne </dd>.

Ich habe mir das ganze durchgelesen und ein bischen kommentiert.

Ich glaube der Fehler liegt überhaupt nicht in dem JS das du gepostet hast. Poste mal die Url mit der du es aufrufst. Wenn der letzte Teil nur 15 Zeichen lang ist ist der Fehler in der Funktion die das JS aufruft. Such dort!

Jak

gnagflow 31.07.2003 19:10

Zitat:

Original geschrieben von jak
1.) Poste vielleicht eimal die Ausgabe die erzeugt wird.
2.) Je mehr Code desto unwahrscheinlicher ist es, daß sich jemand einliest. Am besten ist es im Normalfall
.) Auftrennen des Codes in Unterfunktionen
.) Eingrenzen des Fehlers

Nebenbei: Der Code macht bei jedem Schleifendurchlauf ein

ohne </p> und ein <dd> ohne </dd>.

Ich habe mir das ganze durchgelesen und ein bischen kommentiert.

Ich glaube der Fehler liegt überhaupt nicht in dem JS das du gepostet hast. Poste mal die Url mit der du es aufrufst. Wenn der letzte Teil nur 15 Zeichen lang ist ist der Fehler in der Funktion die das JS aufruft. Such dort!

Jak

ad 1. Suchseite
ad 2. danke, werd mich ein wenig durchackern. bin grade auf urlaub, so dringend ist's nicht.
was mich halt ein wenig wurmt, ist, dass bei der suche mit dem ie6 der browser jedes 2.mal abstuerzt und dass bei 56k-modem die suhe elendslang dauert. (haett ich nur nicht so viele seiten eingegeben, ich weiss...;) )

snowman 31.07.2003 19:46

kannst du asp benutzen?

gruss,
snowman

gnagflow 31.07.2003 21:01

Zitat:

Original geschrieben von snowman
kannst du asp benutzen?

gruss,
snowman

fuerchte nein.

gnagflow 01.08.2003 17:45

@ snowman:

nach ruecksprache mit dem provider: asp ist doch moeglich.

snowman 01.08.2003 19:36

na dann:

http://www.hotscripts.com/ASP/Script...ing/index.html

oder:
http://www.google.at/search?q=asp+se...-8&hl=de&meta=

gruss,
snowman

gnagflow 01.08.2003 22:01

Zitat:

Original geschrieben von snowman
na dann:

http://www.hotscripts.com/ASP/Script...ing/index.html

oder:
http://www.google.at/search?q=asp+se...-8&hl=de&meta=

gruss,
snowman

danke!


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag