bjornawarjar Skrevet 5. juni 2007 Skrevet 5. juni 2007 Finnes det noen god måte å sette eksterne data (f.eks en html-fil) inn i en layer på? Har hittil modifisert et script jeg fant: <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language="JavaScript" type="text/JavaScript"> <!-- function MM_reloadPage(init) { //reloads the window if Nav4 resized if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) { document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }} else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); } MM_reloadPage(true); //--> </script> <script language="JavaScript"> function vis(doc){ document.getElementById("Layer1").src = doc; if(!document.getElementById("Layer1").onload){ setTimeout("sendHTML()", 1000); } } function sendHTML(){ var srcFrame = document.getElementById("Layer1"); var srcContent = (srcFrame.contentDocument) ? srcFrame.conentDocument.getElementByTagName("BODY")[0].innerHTML : (srcFrame.contentWindow) ? srcFrame.contentWindow.document.body.innerHTML : ""; document.getElementById("Layer2").innerHTML = srcContent; } </script> </head> <body> <div id="Layer1" style="position:absolute; left:15px; top:48px; width:731px; height:1092px; z-index:1"> <form name="form1" method="post" action=""> <input type="button" name="test" value="Trykk" onClick="vis("test.htm")"> </form> </div> <div id="Layer2" style="position:absolute; left:29px; top:187px; width:768px; height:1264px; z-index:2"></div> </body> </html> Får syntaksfeil på </form>, er ikke sikker på hva som forårsaker dette ennå.
___ Skrevet 5. juni 2007 Skrevet 5. juni 2007 Dette har jeg slitt med tidligere, uten særlig hell. Løsningen var å bruke en iframe. Hilsen Werner
Gjest Slettet+142 Skrevet 5. juni 2007 Skrevet 5. juni 2007 (endret) Ajax? Endret 5. juni 2007 av Slettet+142
Kagee Skrevet 13. juni 2007 Skrevet 13. juni 2007 mariyo: Jeg ser du foreslått Ajax i flere tråder, men jeg er ganske sikker på at en ajaxrequest ikke får lov til å forlate domene - kanskje ikke engang sitt eget subdomene.
Drømmemannen Skrevet 13. juni 2007 Skrevet 13. juni 2007 (endret) Det har ikke noe med at onClick="vis("test.htm")"> burde sett ut slik: onclick="vis('test.htm')"> ? InnerHTML er ustandard. Hvis du holder deg på nodenivå skjer det litt mer. Bytt ut sendHTML-funksjonen din med: function sendHTML(){ var srcFrame = document.getElementById("Layer1"); document.getElementById("Layer2").appendChild( srcFrame ); } Da blir Layer1 flyttet til Layer2. Om det ikke er det du ønsker til slutt er det kanskje fremdrift. Endret 13. juni 2007 av balletryne
Gjest Slettet+142 Skrevet 13. juni 2007 Skrevet 13. juni 2007 mariyo: Jeg ser du foreslått Ajax i flere tråder, men jeg er ganske sikker på at en ajaxrequest ikke får lov til å forlate domene - kanskje ikke engang sitt eget subdomene. 8853268[/snapback] Da kan man eventuelt lage en php-fil på domenet, som henter det man trenger da Selv om dette ikke vil virke i alle tilfeller (hvor serveren ikke støtter php), kan det jo virke. Bare jeg som ikke er så veeldig proff på javascript at jeg ikke har noe annet å foreslå :/
Kagee Skrevet 14. juni 2007 Skrevet 14. juni 2007 Det er løsningen jeg går for selv, så ja, det er mulig.
hishadow Skrevet 14. juni 2007 Skrevet 14. juni 2007 Fiklet med samme tanke for en stund tilbake, men forstod det slik som det er nevnt at en er nødt til å mekke til noe via php på sin egen webserver. Problemet blir da at webserveren du bruker blir belastet med ekstra trafikk for all data som hentes fra eksterne kilder.
pgdx Skrevet 15. juni 2007 Skrevet 15. juni 2007 Fiklet med samme tanke for en stund tilbake, men forstod det slik som det er nevnt at en er nødt til å mekke til noe via php på sin egen webserver. Problemet blir da at webserveren du bruker blir belastet med ekstra trafikk for all data som hentes fra eksterne kilder. 8864855[/snapback] Jeg mekket et greit skript som sjekket om filen var mer enn én time gammel, om den var detm hentet den en ny kopi, ellers brukte den den lokale. Det fungerer jo selvsagt ikke for alle ting, men for meg funket det bra.
pulse Skrevet 16. juni 2007 Skrevet 16. juni 2007 (endret) Finnes det noen god måte å sette eksterne data (f.eks en html-fil) inn i en layer på? Under følger en liten ajax sak jeg skrev for å oppdatere innholdet i en <div id="divid"></div>. Håper den kan være til hjelp <script> var ajaxupdate = { useActiveX: (typeof ActiveXObject != "undefined"), useDom: document.implementation && document.implementation.createDocument, useXmlHttp: (typeof XMLHttpRequest != "undefined") }; ajaxupdate.ARR_XMLHTTP_VERS = ["MSXML2.XmlHttp.6.0","MSXML2.XmlHttp.3.0"]; ajaxupdate.ARR_DOM_VERS = ["MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.3.0"]; function check(fname) { PageUri = fname; if (ajaxupdate.useXmlHttp) PageReq = new XMLHttpRequest(); else if (ajaxupdate.useActiveX) { if (!ajaxupdate.XMLHTTP_VER) { for (var i=0; i < ajaxupdate.ARR_XMLHTTP_VERS.length; i++) { try { new ActiveXObject(ajaxupdate.ARR_XMLHTTP_VERS[i]); ajaxupdate.XMLHTTP_VER = ajaxupdate.ARR_XMLHTTP_VERS[i]; break; } catch (oError) { } } } if (ajaxupdate.XMLHTTP_VER) { PageReq = new ActiveXObject(ajaxupdate.XMLHTTP_VER); } } PageReq.open ("GET", PageUri, false); PageReq.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); PageReq.send (null); document.getElementById("divid").innerHTML = PageReq.responseText; } window.onload = check("filnavn.fil"); </script> Endret 16. juni 2007 av pulse
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå