Avatar billede mama Nybegynder
10. januar 2001 - 15:13 Der er 13 kommentarer og
1 løsning

Browser history

Hejsa!!

Jeg er ved at lave en internet-site, hvor jeg ønsker browserens \'BACK\' funktion
sat ud af funktion. Det gør jeg på følgende måde:

<a href=\"java script:location.replace(\'nextPage.htm\')>Next page</a>

Herved undgår jeg at de enkelte sider bliver lagt i browserens \'history-stack\'

På en af siderne har jeg en applet, som loader en URL vha. flg. metode:

private void loadURL(String s)
    {
        URL url = getCodeBase();
        try
        {
            getAppletContext().showDocument(new URL(url.getProtocol(), url.getHost(), s), \"main\");
            return;
        }
        catch(MalformedURLException _ex)
        {
            return;
        }
    }

Er der nogen som har et bud på, hvordan jeg undgår at få lagt URL\'en i
browserens history stack(ved load fra applet\'en), som jeg gør i det øverste java-script.
(Applet\'en skal kompileres under JDK 1,01).

/Martin M. Andersen
Avatar billede pstric Nybegynder
10. januar 2001 - 15:15 #1
Forkert kategori. Spørg i Javascript.
Avatar billede disky Nybegynder
10. januar 2001 - 15:17 #2
dem der valgte at javascript skulle hedde javascript skulle have noget TÆV
Avatar billede mama Nybegynder
10. januar 2001 - 15:22 #3
Så er mit spørgsmål vist ikke udtrykt korrekt nok. Mit spørgsmål går jo på hvordan jeg i JAVA gør det, som jeg giver et eksempel på i java-script.

Avatar billede hoejrup Nybegynder
10. januar 2001 - 15:30 #4
Du er en af dem i verden der genere folk, der gerne vil bevare back funktionen. Jeg plejer aldrig at vende tilbage til en side, hvis den inaktivere back funktionen. Jeg kender mange der har det på den samme måde. Det er noget andet, hvis det er spørgsmål om sikkerhed. Men det er der sjældent tale om!!!
Avatar billede mama Nybegynder
10. januar 2001 - 15:48 #5
Du har fuldstændig ret og jeg kan da også oplyse at det i dette tilfælde er et spørgsmål om sikkerhed.
Avatar billede keysersoze Guru
10. januar 2001 - 16:11 #6
du kan ikke sætte BACK ud af funktion - det eneste du kan gøre er at køre siden i fuld-screen - så forsvinder alt!

søg her på eksperten efter \'full screen\' og/eller \'fuld skærm\'
Avatar billede mama Nybegynder
10. januar 2001 - 21:49 #7
BACK funktionen kan godt sættes ud af funktion, som jeg viser øverst i mit eksempel. Jeg mangler bare at kunne gøre det når jeg loader en URL via en applet.
Avatar billede keysersoze Guru
11. januar 2001 - 14:15 #8
mama >> ja, ja, jeg kan godt se din kode ;o) det var heller ikke _det_ jeg mente - bare at full-screen nok var bedre...

men det er jo smag og behag for at genere sine besøgende ;o)
Avatar billede kama Nybegynder
12. januar 2001 - 11:05 #9
Hej Martin

Prøv nedenstående. Det skulle virke!
Husk: Overskriv stop-metoden i appletten således at alle tråde/resourcer nedlægges,
da du mister kontrollen over appletten så snart du kalder nextHTML!!!

JavaScript på den side hvorfra du linker:
-----------------------------------------

<SCRIPT LANGUAGE=\"JavaScript\">
function nextHTML() {
location.replace(\"nextHTML.html\")
}
</SCRIPT>


Kode til at kalde nextHTML i appletten:
---------------------------------------

URL nextURL=null;

try
{
    nextURL=new URL(getDocumentBase(), \"java script:nextHTML()\");
   
    //Her kaldes JavaScript og henter den næste side uden at lave \'history\'.
    getAppletContext().showDocument(nextURL,\"_top\");
}

catch (java.net.MalformedURLException m)
{
    m.printStackTrace();
}

/kama
Avatar billede mama Nybegynder
12. januar 2001 - 12:20 #10
Hej Kama!!

Glimrende eksempel, men jeg kan ikke ligge URL\'en statisk i HTML dokumentet, da URL\'en der skal loades er afhængig af hvad applet kommer frem til.
(Den URL der loades er et cgi-request med en række parametre).

Det fremgår dog ikke tydeligt af mit eksempel !!
Avatar billede kama Nybegynder
12. januar 2001 - 12:31 #11
>>mama: Det burde være nemt nok. Må jeg se dit cgi-kald og evt. koden til scriptet?

/kama
Avatar billede mama Nybegynder
12. januar 2001 - 13:11 #12
>>kama: Parameter strengen i S (jvf. ovenstående eks.) kunne så således ud:

sk=385&tk=Q061&HASH=CA4E2F79DAF6C590CBD269AB947BD3FF

URL\'en der skal loades kunne f.eks. se sådan her ud:

https://www.mySite.dk/cgi/gateway?sk=385&tk=Q061&HASH=CA4E2F79DAF6C590CBD269AB947BD3FF

Den optimale løsning ville være at kunne lave kaldet fra applet\'en som det gøres via java-script, men det kan jeg ikke lige se hvordan det skulle gøres. Men dit forslag med kald til scriptet fra appleten er ganske OK!!
Avatar billede kama Nybegynder
12. januar 2001 - 15:03 #13
Du skal så have \'s\' med i kaldet:

<SCRIPT LANGUAGE=\"JavaScript\">
function nextHTML(s) {
location.replace(\"nextHTML.html?\"+s)
}
</SCRIPT>


Kode til appletten:
-------------------

String jSKald = \"java script:nextHTML(\\\"\" + s + \"\\\")\";

nextURL=new URL(getDocumentBase(), jSKald);

/Thomas
Avatar billede kama Nybegynder
12. januar 2001 - 15:13 #14
Du skal nok ikke regne med, at kunne gøre det direkte fra appletten! Mit svar med kald til JavaScript er nok den eneste simple løsning.

læs her om showDocument: http://developer.netscape.com/docs/technote/java/appletlife.html
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester