Avatar billede q^bone Nybegynder
20. april 2007 - 22:59 Der er 7 kommentarer og
1 løsning

Link til hovedside og iframe (2)

Hey experter.
Jeg har fundet en tråd som besvarer mit problem ganske godt. og jeg har da også fået koden til at virke delvist.
Her er tråden med koden: http://www.eksperten.dk/spm/85304#rid841730

Mit problem er at jeg ikke kan få min default side til at vise noget som helst.
Jeg har endda prøvet at erstatte iframe koden og skrive "hej" heller ikke det vil den skrive. Hvis jeg fjerner al javascript koden før document.write så vil den godt skrive "hej".

Kan nogle fortælle mig hvad problemet er? og evt. hvordan det fixes? - Jeg er ikke nogen haj til Javascript skal det dog siges :)

Siden hvor jeg har forsøgt mig med koden er her:
http://exdeus.qbone.biz/pages/default.php

Gå ind under vis kildekode for at se den, jeg har prøvet at smide den på pastebin.com men den kunne ikke tilføjes :S
Det gør vel heller ikke så meget, der er ikke noget den ikke viser når man siger vis kildekoden.
Avatar billede mclemens Nybegynder
20. april 2007 - 23:46 #1
<script language="javascript">


var iframeURL = "http://www.google.com";
var tmp = window.location.href.split("?");

if(tmp.length>1){
  tmp = tmp[1].split("&");
  for(i=0;i<tmp.length;i++)if(tmp[i].indexOf("cwindow")==0){
    tmp=tmp[i].split("=");
    iframeURL = unescape(tmp[1]);
  }
}

document.write( "<iframe src='"+ iframeURL +"' align='center' width='100%' height='500' marginheight='0' marginwidth='5'

frameborder='0'  scrolling='auto'></iframe>" );

</script>
Avatar billede mclemens Nybegynder
20. april 2007 - 23:55 #2
Forklaring:

1. fejl:
    tmp = tmp1[1].split('=');
- Der er ikke noget tmp1 array ... der var et tmp
array. Så 1 tallet lige efter tmp var en fejl.

2. "fejl":
Ved forespørgsel på en side alá ?navn=noget&titel=noget&cwindow=domaenefilmedsti.html&nogetmere=bla.bla.
Tog scriptet ikke hensyn til at gennemløbe stien for at finde variablen.


- Hvis fejl2 aldrig vil kunne ske og det altid vil være ?cwindow=http://domaenefilsti-ognavn.html
så kan scriptet forkortes til:

<script language="javascript">

var iframeURL = "http://www.google.com";
var tmp = window.location.href.split("?");

if(tmp.length>1){
  if(tmp[1].indexOf("cwindow")==0){
    tmp=tmp[1].split("=");
    iframeURL = unescape(tmp[1]);
  }
}

document.write( "<iframe src='"+ iframeURL +"' align='center' width='100%' height='500' marginheight='0' marginwidth='5' frameborder='0'  scrolling='auto'></iframe>" );

</script>
Avatar billede mclemens Nybegynder
21. april 2007 - 00:03 #3
Forkortet udgave af scriptet i 20/04-2007 23:55:27 (location.search)

<script language="javascript">

var iframeURL = "http://www.google.com";
var tmp = window.location.search.substr(1);
if(tmp){
  if(tmp.indexOf("cwindow")==0){
    tmp=tmp.split("=");
    iframeURL = unescape(tmp[1]);
  }
}

document.write( "<iframe src='"+ iframeURL +"' align='center' width='100%' height='500' marginheight='0' marginwidth='5' frameborder='0'  scrolling='auto'></iframe>" );

</script>

...

eller forkortet udgave af 20/04-2007 23:46:55:

<script language="javascript">

var iframeURL = "http://www.google.com";
var tmp = window.location.search.substr(1);
if(tmp){
  tmp = tmp.split("&");
  for(i=0;i<tmp.length;i++)if(tmp[i].indexOf("cwindow")==0){
    tmp=tmp[i].split("=");
    iframeURL = unescape(tmp[1]);
  }
}

document.write( "<iframe src='"+ iframeURL +"' align='center' width='100%' height='500' marginheight='0' marginwidth='5'

frameborder='0'  scrolling='auto'></iframe>" );

</script>
Avatar billede q^bone Nybegynder
21. april 2007 - 10:52 #4
Alt for vildt. Du gjorde endda mere end jeg bad om, dit første svar virker perfekt.
Tusind tak for hjælpen :)
Avatar billede q^bone Nybegynder
21. april 2007 - 11:06 #5
Faktisk har jeg et ønske mere til funktionen hvis det kan lade sig gøre.
Kan jeg få den til også at medtage variabler som f.eks. stå som viewtopic.php?t=67#200

Altså #200 :)
Avatar billede mclemens Nybegynder
21. april 2007 - 13:52 #6
Tak for point :o)
...
Jeps, du skal bare escape dine urls som du bruger.
Indsæt url der kommer efter cwindow i nedenstående og escape.

Eksempel:
http://www.eksperten.dk/spm/774428#rid6717616
->
http://url.noget/filnavn.html?cwindow=http%3A//www.eksperten.dk/spm/774428%23rid6717616
(eksperten er et dårligt eksempel til ovenstående da den
fjerner framing, men det var mere for at give et eksempel...)

...

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">
function calc(){
txt=escape(document.getElementById("streng").value)
document.getElementById("link").innerHTML=txt;
}
</script>

</head><body>

<input type="text" id="streng" value="æ-ø-å-Æ-Ø-Å"> - <b onclick="calc();">Url-encode</b><br>

<div id="link">&nbsp;</div>

</body></html>
Avatar billede q^bone Nybegynder
21. april 2007 - 14:18 #7
vil det sige at istedet for at skrive en # i linket, så skal jeg skrive %23 ?
Avatar billede mclemens Nybegynder
21. april 2007 - 14:39 #8
Ja, ligesom i det er tilfældet med den du tog det fra oprindeligt.
Det bliver så unescapet med iframeURL = unescape(tmp[1]); så
browseren får tegnene deconverteret til det den skal bruge.
- Husk også på at = -> %3D samt & -> %26. Men det er somsagt
kun i variablen cwindow det skal escapes, brug evt.
21/04-2007 13:52:45 til at escape linket med.
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