Avatar billede monkeysee Nybegynder
26. juni 2003 - 07:49 Der er 12 kommentarer og
1 løsning

Oprette IFRAME (on-the-fly)

Den flg. kode burde oprette en IFRAME (i MSIE), og derefter returnere en [object] besked når jeg spørger efter objektet. Desværre får jeg kun "null" tilbage som svar...

Eksisterer der en anden måde at tilgå objektet?

-----------------------------------------------

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

    ifrm = document.createElement("IFRAME");
    ifrm.setAttribute("src", "http://www.eksperten.dk/");
    ifrm.style.width = 100+"%";
    ifrm.style.height = 480+"px";
    ifrm.setAttribute("ID","test")
    document.body.appendChild(ifrm);
    alert(document.all("test"))
//-->
</script>
Avatar billede =maddog= Nybegynder
26. juni 2003 - 07:58 #1
document.createElement("IFRAME"); virker vist ikke i IE. Det virker kun i NS/Moz og muligvis opera. Du bliver nød til at injecere html, altså
"<iframe id=\"iframe0001\"></iframe>" og hente den ud med document.getElementById("iframe0001");
Avatar billede =maddog= Nybegynder
26. juni 2003 - 08:00 #2
i øvrigt har experten.dk en frame-killer der vil øjelægge din iframe straks den vises om jeg husker rigtigt.
Avatar billede monkeysee Nybegynder
26. juni 2003 - 08:07 #3
Ups...det med Eksperten skal nok passe...jeg gav blot URL'e som et "neutralt" eksempel (istedet for min egen hjemmeside;-). Men ellers virker det altså i IE, godt at høre at det også virker i NS/Moz - desværre er det en del af en IE-only intranet-ting.
Avatar billede monkeysee Nybegynder
26. juni 2003 - 08:12 #4
Maddog >> og jeg kunne godt "indsprøjte" min kode, hvis jeg ikke skulle beholde det eksisterende indhold. Men en document.write erstatter, så vidt jeg ved, alt indhold i dokumentet, hvorimod en appendChild funktion gør det muligt at tilføje indhold (i dette tilfælde IFRAME's) løbende. Hvilket er præcis hvad jeg ønsker at gøre!
Avatar billede =maddog= Nybegynder
26. juni 2003 - 08:53 #5
Med injection mener jeg nogen i stil med (uden at have testet)
temp = document.createElement("P");
temp.innerHTML="<iframe></iframe>";
ifrm = temp.firstChild;
... din kode ...
delete temp;
hvis du forstår.
Avatar billede =maddog= Nybegynder
26. juni 2003 - 08:56 #6
quote:
... As of Internet Explorer 5, you can create all elements programmatically, except for frame and iframe ...

fra microsofts egen api:
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/createelement.asp
Avatar billede monkeysee Nybegynder
26. juni 2003 - 08:58 #7
AHHH....yes det må prøves! Noget skægt, siden du er Moz-mand, må du kende til frustrationen ved at omgå M$ produkter. Well, det du skrev om at IE ikke kunne oprette IFRAME's passer. Ifølge deres dokumentation: "As of Internet Explorer 5, you can create all elements programmatically, except for frame and iframe"

Men ikke hvis du prøver det af i virkeligheden? Den flg. kode laver en fin række af IFRAMES, no problemo;-)
-----------
<a href="java script:makeFrame()">opret IFRAME</a>

<script language="JavaScript">
<!--
function makeFrame(){

    ifrm = document.createElement("IFRAME");
    ifrm.setAttribute("src", "http://localhost");
    ifrm.style.width = 100+"%";
    ifrm.style.height = 80+"px";
//    ifrm.setAttribute("ID","test")
    document.all("container").appendChild(ifrm);
//    alert(document.all("test"))

}

//-->
</script>

<div id="container">
</div>
--------------



PS: Jeg har lidt travlt lige nu, men vender tilbage ASAP.
Avatar billede =maddog= Nybegynder
26. juni 2003 - 09:15 #8
jeg kan kun gætte:
de har forsøgt at implementere iframe. de har ikke kunnet få det til at virke og har ikke kunnet extrahere den iframe specifikke kode fra kildekoden. de har erkendt at iframe ikke virker ordentligt og siger derfor, at det ikke er understøttet, fordi man ikke kan regne med, at scriptet eksekverer ordentligt.

man kan godt se, at microsofts folk tænker i VB/ASP hele tiden, og det er en *beeep* skam for det duer bare ikke i længden.
"I må kun bruge de smarte finesser vi har lagt ind. Så skal I kun skrive window.activeXComponent("IExplorer.doLigeThisAndDoLigeThat");. Hurrah"
"Jamen jeg vil gerne kunne tilføje en ekstra funktion via script så jeg ikke skal gøre det manuelt."
"DOH!"
hvilket gøres helt tydeligt ved at IE kun opfatter objekter som Object, mens NS/Moz opfatter et objekt som object _Constructor. e.g. vil
div = document.createElement("DIV");
alert(div);
blive opfattet som "object HTMLDivElement" af NS/Moz.
Avatar billede =maddog= Nybegynder
26. juni 2003 - 09:38 #9
nu har jeg haft chance for at teste lidt.
du skal skrive id med småt
ifrm.setAttribute("id","test")
så virker det. i hvert fald her hos mig.
Avatar billede monkeysee Nybegynder
26. juni 2003 - 14:49 #10
TA-DAA! Også her...og det på MSIE...jeg takker meget for hjælpen (og hvis du så kunne oprette et svar så du kan få fortjente point's...). Jeg regner nærmest med at løbe ind i forskellige problemer senere hen, med Microsoft's forbehold kan man vel ikke vente andet.

Apropos: kender du Farlig Fredag fra nordjysk lokalradio ? - de lavede en sketch hvori en småforbryder bliver forsøgt overbevist om Windows OS' fortræffeligheder. Sketchen slutter med flg. ord:
"Det udfører fand'me flere ulovlige handlinger end mig - og jeg er kriminel!"
Avatar billede roenving Novice
26. juni 2003 - 15:04 #11
Set på http://www.ebruger.dk/

Windows 9x/Me - 32 bit extensions and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that cant stand 1 bit of competition

-- en anelse tilrettet *+)
Avatar billede =maddog= Nybegynder
26. juni 2003 - 21:39 #12
:D. Kom lige i tanke om en gammel radio sketch

"Nu får du munden på gled Bjarne!"
"I får ikke et ord ud af mig strisser-svin."
"Bjarne. Du ved vi kan plante narko i din celle easy..."
"Op i røven din høker. Do your worst."
"Ok, Bjarne nu er jeg træt af dig. Grumme, giv ham nogle slag!"
"okey okey hvad er det i vil vide?"
"Ja altså. Vi er i skoven i Kings Quest 7 og vi har krystallen og fehårene, men vi kan ikke bruge dem på træstubben ...."
Avatar billede roenving Novice
27. juni 2003 - 01:16 #13
*gg*
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