Avatar billede mpk Nybegynder
22. august 2000 - 14:39 Der er 18 kommentarer og
1 løsning

Problemer med indlæsning af js-fil

Jeg vil loade forskillige js-info-filer alt efter hvad brugeren gør.

For at gøre dette, har jeg lavet en en frame, der ikke har nogen størelse, og dermed er usynlig for brugeren.

I denne usynlige frame indlæser jeg så den ønskede js-fil.

Explorer forstår fint denne linie :

parent.frames[4].document.write(\'<SCRIPT language=\"JavaScript\" src=\"\'+aargang+\'/info.js\"></\'+\'SCRIPT>\');

Det gør Netscape tilgengæld ikke.

Spørgsmål: Hvordan får jeg Netscape til at indlæse en js-fil i en anden frame

/vh MPK
Avatar billede jumper Nybegynder
22. august 2000 - 14:43 #1
parent.frames[4].document.write(\'<S\'+\'CRIPT language=\"JavaScript\" src=\"\'+aargang+\'/info.js\"></S\'+\'CRIPT>\');

/Thor
Avatar billede erikjacobsen Ekspert
22. august 2000 - 14:43 #2
du skal nok sige

parent.frames[4].document.open();

før og

parent.frames[4].document.close();

efter din write. Utestet.
Avatar billede erikjacobsen Ekspert
22. august 2000 - 14:44 #3
Jah, jumper, var det ikke os der diskuterede lige netop det for et års tid siden.... ;-)
Avatar billede jumper Nybegynder
22. august 2000 - 14:46 #4
hehe ;)

/Thor
Avatar billede mpj Nybegynder
22. august 2000 - 17:16 #5
jumper>>
Øhh hvordan forstås:
<S\'+\'CRIPT

???
Avatar billede mpk Nybegynder
22. august 2000 - 17:48 #6
Selv med jeres forslag, kan jeg stadig ikke få det til at virke.

Jeg har derfor konstrueret et eksempel, der heller ikke virker.
Men så kan det være at i kan fortælle mig hvad der er galt.

Jeg laver følgende 3 filer :

Start.html
main.html
text.js

Start.html indeholder følgende :

<HTML>
<HEAD><TITLE>test</TITLE></HEAD>
<FRAMESET COLS=\"200,*\">
  <FRAME SRC=\"main.html\" NAME=\"left\">
  <FRAME SRC=\"\" NAME=\"right\">
</FRAMESET>
</HTML>

Main.html indeholder følgende :

<HTML>
<HEAD><TITLE>main</TITLE>
<SCRIPT Language=\"JavaScript\">

function go()
{
    parent.frames[1].document.open();
    parent.frames[1].document.write(\'<HTML><BODY><S\'+\'CRIPT language=\"JavaScript\" src=\"text.js\"></S\'+\'CRIPT></BODY></HTML>\');
    parent.frames[1].document.close();

    document.form1.edit1.value = parent.frames[1].text;
}

</SCRIPT>
</HEAD>
<BODY>
<FORM NAME=\"form1\">
<Input type=text size=\"15\" name=\"edit1\"><Input type=button value=\"Klik\" Onclick=\"go();\">
</FORM>
</BODY>
</HTML>


Og text.js indeholder følgende :

var text = \'Det virker !\';


Igen virker det fint i Explorer, men Netscape får ikke fat i indholdet af text variablen.

Hvad er der galt ?

/vh MPK
Avatar billede el_gnu Nybegynder
23. august 2000 - 11:05 #7
Måske fejlen ligger i dit frameset. Hvis nu du starter med angive en fil i framen right:

<HTML>
<HEAD><TITLE>test</TITLE></HEAD>
<FRAMESET COLS=\"200,*\">                                <!-- kan den her linie ikke hedde <frameset cols=\"100%,*\"> -->
<FRAME SRC=\"main.html\" NAME=\"left\">
<FRAME SRC=\"blank.html\" NAME=\"right\">          <!-- istedet for  <FRAME SRC=\"\" NAME=\"right\"> -->
</FRAMESET>
</HTML>

(-: el Gnu
Avatar billede erikjacobsen Ekspert
23. august 2000 - 11:09 #8
Det er værd at prøve, el_gnu, men jeg tror ikke det gør noget. Jeg har eksperimenteret lidt derhjemme,
og NS 4.5 ser ikke ud til at ville dette. Måske vi skulle høre hvorfor løsningen til problemet i det hele
taget skal se sådan ud ??
Avatar billede el_gnu Nybegynder
23. august 2000 - 15:13 #9
Ja det ville være rart at høre.
Umiddelbart ville jeg da tro det var nemmere at gøre med et layer!?
Avatar billede mpk Nybegynder
24. august 2000 - 17:26 #10
Jeg arbejder somend på en Fotobog, der med tiden gerne skulle kunne rumme både flere årgange og flere skoler. Jeg har så valgt at samle hver årgang i sin egen mappe, men for så at finde ud af hvormange klasser, der ligger i mappen, har jeg brug for den omtalte js-fil, hvor alle de nødvendige data skal stå.

I hver mappe vil jeg have en js-fil, der indeholder al informationen om eleverne i den pågældende mappe. På den måde vil det også være rimelig simpelt at tilføje nye klasser og årgange.

Det hele skal kunne styres fra selve funktions-filen, der indeholder alle script-funktionerne.
Det skulle gerne bliver meget dynamisk.

Men jeg er rimelig åben overfor gode forslag til, hvordan jeg takler dette Netscape-problem, for det ville da være synd, hvis det kun blev Explorer-brugere, der kom til at se min forhåbenlig fremragende fotobog.

og til el gnu :
Dit første forslag gør hverken fra eller til, og
et layer vil ikke kunne bruges til meget i denne sammenhæng.

/MPK
Avatar billede erikjacobsen Ekspert
24. august 2000 - 19:34 #11
Jeg ville sige, mpk, at du skal bruge et script og en database på serversiden, ASP/PHP/Perl whatever.
På den måde sætter du dig ud over problemer på klientsiden. Kig evt. på http://www.hasselager.net/pilehytten
og tryk på fødselsdage, så ser du en \"fotobog\", der er opdelt i måneder. Billederne er alle uploadede via
en webside, og det hele er gemt i en database. Og det kan ses i \"alle\" browsere...
Avatar billede olebole Juniormester
25. august 2000 - 06:18 #12
<ole>
Hvis du nu insisterer på en JavaScript-løsning:
Hvorfor skriver du ind i den frame? Du kan da bare loade et HTML-dokument med den pågældende \'.js\' fil inkluderet - altså det samme, som det du skriver.
Så vil NS gerne læse det!  ;o)
/Vh
</bole>
Avatar billede olebole Juniormester
25. august 2000 - 06:31 #13
Eller du kan skrive sådan i et dokument (\'test.html\'), du loader ind i din skjulte frame:

<script language=\"JavaScript\">
<!--

myFile = location.search.substring(1,location.search.length)
document.write(\"<\\script language=\'JavaScript\' src=\'\"+myFile+\"\'></\\script>\");

//-->
</script>

Så kan du fra din anden frame skifte test.html ud med sig selv - MEN med en search (eller query) streng efter sig:

parent.frames[1].location.href = \"test.html?text.js\";

Nu vil du få loaded test.html i den skjulte frame og dette dokument refererer til text.js.
Du får så kun ét dokument mere i alt - til gengæld virker det  ;o)
/Vh
Avatar billede olebole Juniormester
25. august 2000 - 06:33 #14
Men jeg giver dig absolut ikke uret, Erik!  ;o)
Avatar billede el_gnu Nybegynder
25. august 2000 - 14:40 #15
MPK => Det jeg mente med et layer var, at man også kan skrive til det, på samme måde som du prøver at gøre med en frame og derved kunne undgå et frameset.
Avatar billede olebole Juniormester
26. august 2000 - 02:26 #16
el_gnu >> Det kan du sagtens, men det passerer ikke JS-fortolkeren, når du skriver det ind i et lag, der ER skrevet ud.
Det skal stå der, når dokumentet fortolkes ved indlæsning.
/Vh
Avatar billede el_gnu Nybegynder
26. august 2000 - 11:08 #17
olebole => OK det vidste jeg ikke.
Avatar billede mpk Nybegynder
26. august 2000 - 19:30 #18
Det med at skrive til en skjult frame, var oprindeligt for at undgå, at den den js-fil jeg ville indlæse, slettede den side, hvor jeg skulle bruge data\'en.

Men olebode, du har fuldstændig ret, jeg skal bare loade en html-fil med den pågældende js-fil i den skjulte frame, så har jeg adgang til mine data.

Og det kan da godt være at Erik har ret, men hvis man nu ikke lige ved så meget om ASP/PHP/Perl, er en JavaScript-løsning nu alligevel at foretrække.

Derfor får Olebole pointene.

tak for hjælpen

/MPK
Avatar billede olebole Juniormester
27. august 2000 - 00:47 #19
mpk >> Selv tak.
Jeg sad selv for et lille års tid siden og lavede et større JavaScript-baseret shopping system for et firma. Det var et must - forstå det, hvem der kan - at det blev lavet i JS. Det var en sjov opgave at få det til at lykkes og at optimere det så meget som muligt, men det er ikke noget, jeg er stolt af i dag - selvom det udfra et JS synspunkt er rimelig avanceret. Det kunne være lavet langt bedre i PHP.
Når du har lavet din fotobog i JS, så brug en lille smule tid på at checke PHP-kategorien ud på Eksperten. Der er en masse links til tutorials, sourcecodes og o.lign. Med lidt hjælp kan du sagtens strikke noget bedre sammen - og lære noget PHP i processen!  ;o)

el_gnu >> Det gjorde jeg heller ikke, før jeg selv røg i den for et par måneder siden...men det er jo logisk nok...hehe.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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