Avatar billede brock Nybegynder
24. juli 2000 - 17:05 Der er 13 kommentarer og
1 løsning

Load i layers (igen)

Hvordan loader man en html.side ind i en layer, som er i et frameset.

Jeg benytter lige nu det her script:

<SCRIPT LANGUAGE=\"JavaScript\">
<!--
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false

function loadSource(id,nestref,url) {
    if (ns4) {var lyr = (nestref)? eval(\'document.\'+nestref+\'.document.\'+id) : document.layers[id]
        lyr.load(url,lyr.clip.width)    }
    else if (ie4) {parent.bufferFrame.document.location = url}}

function loadsourceFinish(id) {
  if (ie4) document.all[id].innerHTML = parent.bufferFrame.document.body.innerHTML
}

//-->
</SCRIPT>

og hvor jeg kalder loadsourceFinish på siden der \"hentes\" i en onload i bodytagen, men ak - det virker ikke i IE - findes der en mere simpel metode???
Avatar billede olebole Juniormester
25. juli 2000 - 01:38 #1
<ole>
Er du sikker på, du kalder:
    onload=parent.loadsourceFinish(\'IdPåDitLag\');
...og ikke bare:
    onload=loadsourceFinish(\'IdPåDitLag\');
...?
/Vh
</bole>
Avatar billede brock Nybegynder
25. juli 2000 - 08:10 #2
Ja, eftersom jeg kalder et script som ligger på en anden side!
Avatar billede olebole Juniormester
25. juli 2000 - 14:53 #3
OK...Det problem har jeg forresten også haft. Jeg løste det ved at skrive:
    <script> parent.loadSourceFinish(\'IdPåDitLag\') </script>
...lige før </body> i det dokument, der skal loades. OnLoad-kaldet virker ikke før vers.5.0 (på Mac i hvert fald!).
Prøv det, så skal det nok lykkes ;-)
/Vh
Avatar billede olebole Juniormester
30. juli 2000 - 03:27 #4
Eeehhh...jeg vil lige sikre mig!
Du har vel forhåbentlig en iframe liggende i dit dokument, der ser sådan noget lignende ud:
    <IFRAME style=\"display:none\" name=\"bufferFrame\"></IFRAME>
...ellers kan du aldrig få dit script til at virke i IE. Funktionen \'loadsourceFinish()\' sætter indholdet af laget = indholdet af din iframe - som du har loaded i \'loadSource()\'.
Jeg spørger måske dumt...men bare for en sikkerheds skyld ;o)
/Vh
Avatar billede brock Nybegynder
30. juli 2000 - 12:22 #5
Du må undskylde, at jeg ikke har vendt tilbage før nu - For at svare på dit spørgsmål - jo, det har jeg da ellers vil det jo nok være noget af et problem :)
men din løsning hjalp ikke helt, så jeg modiferede scriptet en del og sluttede af med, at på sourcesiden at kalde et javascript, som checker om det er IE og så kalde det pågældende script, for IE /NS reagerer åbenbart anderledes på kaldet . parent.SIte. etc

Avatar billede olebole Juniormester
30. juli 2000 - 17:25 #6
Det lyder meget mærkeligt...jeg har aldrig hørt om det problem før...?!? Der må være en anden fejl, der giver dig problemet. Prøv evt. at smide en URL op.
/Vh
Avatar billede brock Nybegynder
30. august 2000 - 04:58 #7
lukker
Avatar billede brock Nybegynder
30. august 2000 - 05:00 #8
jeg så, at den stadig var åben jeg løste problemet dengang med at placere et script, som kaldtes i body med onload. dette script detectede IE/NS og hvis det var NS skulle der stå parent og hvis det var IE skulle der ikke. Det løste problemet. (havde helt glemt at spørgsmålet eksisterede - undskyld)
Avatar billede olebole Juniormester
30. august 2000 - 05:45 #9
Din løsning virker ikke i IE under vers.5.0 på Mac. Ingen onload kald i body\'en virker i 4-versionerne på Mac, når man loader i <div></div>. Er din <IFRAME> ikke skjult funker det fint, men ikke når den er skjult.
Der skal der stå \'parent.......\' både på på PC og Mac, men på Mac skal man som sagt skrive det i bunden af siden og ikke i <body onload=\"........\">. Derfor kan man ligeså godt gøre det som standard. Så virker det X-platform.

Jeg fatter ikke, du har kunnet få det til at virke...det burde det absolut ikke - og jeg kender heller ikke andre, der kan få det til det!

PS: Dan Steinman er selv opmærksom på problemet.
/Vh
Avatar billede brock Nybegynder
30. august 2000 - 10:12 #10
Jamen - vi må tale ved siden af hinanden - for jeg tvivler stærkt på, at jeg kan løse et problem Dan Steinman ikke kan - Faktisk er jeg overbevist om det - men jeg har også lavet den sådan her:

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

ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false

function load(page) {
    if (ns4) document.textLayer.src = page
    else if (ie4) parent.Site.textFrame.document.location = page

parent.Site.scroll(0,0)
}
function loadFinish() {
    if (ie4) document.all.textDiv.innerHTML = parent.Site.textFrame.document.body.innerHTML
        }


//-->
</SCRIPT>

med

<LAYER NAME=\"textLayer\" src=\"load1-text.asp?action=<%response.write(arrrs(\"arr_ID\"))%>\" TOP=75 LEFT=315 WIDTH=375 ></LAYER>
<DIV  ID=\"textDiv\"></DIV>
<IFRAME STYLE=\"display:none\" NAME=\"textFrame\" src=\"load1-text.asp?action=<%response.write(arrrs(\"arr_ID\"))%>\"></IFRAME>

og derfra, hvor jeg kalder \"teksten\"

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

ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false

function back() {
if (ie4) parent.loadFinish()
}
//-->
</SCRIPT>


med <body onload=\"java script:back()\" ....

og det virker i alle browsere på hhv mac/pc

med det er jo ikke rigtig crossbrowser script (det ved jeg godt) - hvis du vil se det virke real - kig på www.bruunskepakhus.dk under arrangement og klik på listerne der

(ps jeg testede det med IE på Mac og det kører !)

venlig hilsen

Brock

Avatar billede olebole Juniormester
30. august 2000 - 10:34 #11
Jeg kan trøste dig med, at det åbenbart er rigtigt, du ikke kan lave noget, Danny-drengen ikke kan  ;o)

MacG3 / IE4.5...der sker ikke en hujende fis på www.bruunskepakhus.dk !

Jeg har lige fornylig haft en mail-udveksling med Steinman om netop dette problem - og han kender det godt.

Ingen onload-kald virker i en skjult <IFRAME> på Mac under version 5.0. End ikke onload=alert(\'Lortet virker jo ikke!\'); Jeg har prøvet ALT!  :o(

Laver du det lille hack med at lægge kaldet ned i bunden af siden, der loades med <script></script> rundt om, kører det hele.

You owe me 250!  *LOL*  :oD
/Vh
Avatar billede brock Nybegynder
30. august 2000 - 10:42 #12
damn damn damn - jeg testede den med IE5 :(

arghhhhhhhh - hvorfor kan micro$oft ikke lave en browser på Mac, som understøtter deres egen \"opfindelse\" - æv

(by the way - er jeg da villig til at give nogle af pointene til dig for din indsats :) )
Avatar billede olebole Juniormester
30. august 2000 - 10:51 #13
Ellers tak, jeg kommer lige fra et spm., hvor jeg vist ikke helt havde fortjent dem...behøver sige, hvor?  :oD

Iøvrigt er IE kommet med 4-5 forskellige DOM\'er...ingen af dem overholder standarderne - men kunne de dog så bare overtræde dem på en konsekvent måde!
/Vh

PS: Faktisk burde du have vidst det allerede  25-07 2000 14:53:56  ;o))
Avatar billede brock Nybegynder
30. august 2000 - 11:00 #14
det gik faktisk først op for mig, at det også er dig - jeg taler med behøver jeg at sige hvor
** LOL **

jeg fortsætter derovre
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