22. januar 2004 - 12:47Der er
7 kommentarer og 1 løsning
HJÆLP! fejl i dannelse nyt vindue med javascript kalender
Denne funktion burde åbne et nyt vindue med indholdet af variablen 'html'.(en kalender). Det gør den ikke korrekt, og det er som om at javascriptfunktionerne den nye side kalder ikke bliver kaldt. Det spookie er at hvis jeg kopierer indholdet fra den nye side(kalenderen) ud i et andet tomt html dokument og åbner dette, så virker alt fint som det skal....
Hvad har jeg gjort galt.. ???? og hvem kan få det til at virke??
function velgDato( ) { var html="<html><head><title>Kalender</title><LINK REL='stylesheet' TYPE='text/css' HREF='"+ webGenCssUrl +"ActiveX.css'><script src='"+ webGenJSUrl +"webGenCalendar.js'></script></head><body><form><table border='1' cellpadding='2' cellspacing='2'><tr><td colspan=2><a class='menu' href='java script:prevMonth();'>Forrige</a></td><td colspan=3 align='center'><span class='maintext'><script>document.write(maneder[mo]+' '+yr);</script></span></td><td colspan=2 align='right'><a class='menu' href='java script:nextMonth();'>Næste</a></td></tr><span class='maintext'><script>tegnKalend();</script></span></table></form></body></html>"; var hojde = 180; var bredde= 548; if (navigator.appName!="Netscape") { var pos = ",left="+50+",top="+50; } else { var pos = ",screenX="+50+",screenY="+50; } cal=window.open('','Kalender',"status=1,location=0,menubar=0,toolbar=0"+ pos +",resizable=1,scrollbars=0,height="+hojde+",width="+bredde); cal.document.write(html); cal.document.close(); }
Prøv med dette, en ofte set problematik er, at </script> opfattes som slutningen af hele script-blokken på trods af, at den er en del af en tekststreng.
function velgDato( ) { var html="<html><head><title>Kalender</title><LINK REL='stylesheet' TYPE='text/css' HREF='"+ webGenCssUrl +"ActiveX.css'><script src='"+ webGenJSUrl +"webGenCalendar.js'><\57script></head><body><form><table border='1' cellpadding='2' cellspacing='2'><tr><td colspan=2><a class='menu' href='java script:prevMonth();'>Forrige</a></td><td colspan=3 align='center'><span class='maintext'><script>document.write(maneder[mo]+' '+yr);</script></span></td><td colspan=2 align='right'><a class='menu' href='java script:nextMonth();'>Næste</a></td></tr><span class='maintext'><script>tegnKalend();<\57script></span></table></form></body></html>"; var hojde = 180; var bredde= 548; if (navigator.appName!="Netscape") { var pos = ",left="+50+",top="+50; } else { var pos = ",screenX="+50+",screenY="+50; } cal=window.open('','Kalender',"status=1,location=0,menubar=0,toolbar=0"+ pos +",resizable=1,scrollbars=0,height="+hojde+",width="+bredde); cal.document.write(html); cal.document.close(); }
Der sker ikke rigtigt noget.. samme resultat... Fandt ud af at jeg har lavet en stavefejl i html strengen.. den er rettet nu, men resultatet er: 'object expected' når jeg prøver det af?? skal du bruge resten af funktionerne... ???
function velgDato( ) { var html="<html><head><title>Kalender</title><LINK REL='stylesheet' TYPE='text/css' HREF='"+ webGenCssUrl +"ActiveX.css'><script src='"+ webGenJSUrl +"webGenCalendar.js'><\57script></head><body><form><table border='1' cellpadding='2' cellspacing='2'><tr><td colspan=2><a class='menu' href='java script:prevMonth();'>Forrige</a></td><td colspan=3 align='center'><span class='maintext'><script>document.write(maneder[mo]+" "+yr);</script></span></td><td colspan=2 align='right'><a class='menu' href='java script:nextMonth();'>Næste</a></td></tr><span class='maintext'><script>tegnKalend();<\57script></span></table></form></body></html>"; var hojde = 180; var bredde= 548; if (navigator.appName!="Netscape") { var pos = ",left="+50+",top="+50; } else { var pos = ",screenX="+50+",screenY="+50; } cal=window.open('','Kalender',"status=1,location=0,menubar=0,toolbar=0"+ pos +",resizable=1,scrollbars=0,height="+hojde+",width="+bredde); cal.document.write(html); cal.document.close(); }
Her er det javascript der bliver importeret i det nye vindue
var Netsc = (navigator.appName=="Netscape")?true:false; var dage = new Array( "Søndag ", "Mandag ", "Tirsdag", "Onsdag ", "Torsdag", "Fredag ", "Lørdag " ); var maneder = new Array( "Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December" ); var mo; var yr; if ( self.location.search.length > 0 ) { mo = unescape( self.location.search.substring(1) ); mo = mo.split(","); yr = parseInt(mo[1]); mo = parseInt(mo[0]); } else { mo = new Date(); yr = mo.getFullYear(); mo = mo.getMonth(); } var maaneden = new Date( yr, mo, 1 );
function tegnKalend ( ) { var rowTx = "\n <tr>"; for (var i=0; dage.length>i; i++ ) rowTx += "<th bgcolor='#F0F0F0'>"+dage[i]+"</th>"; document.write( rowTx+"</tr>" ); var dag = 1-maaneden.getDay(); while ( maaneden.getMonth() == mo ) { rowTx = "\n <tr>"; for (var i=0; dage.length>i; i++ ) if ( 0 >= dag || maaneden.getMonth() != mo ) { rowTx += "<td style='background-color: #000000'> </td>"; dag += 1; } else { rowTx += "<td bgcolor=#FFFFFF><a class='menu' href='java script:useDag(" +dag +")'>" +dag +"</a></td>"; maaneden = new Date( maaneden.valueOf()+(24*60*60*1000) ); dag = maaneden.getDate(); }; document.write( rowTx+"</tr>" ); } } function prevMonth( ) { if ( 0>--mo ) { mo=11; yr=-1+yr }; self.location.search="?"+escape( ""+mo+","+yr ); } function nextMonth( ) { if ( ++mo>11 ) { mo=0; yr=1+yr }; self.location.search="?"+escape( ""+mo+","+yr ); } function useDag(dg, field) { var res = new Date( yr, mo, dg ); opener.brugDato( res ); self.close(); }
Prøv at paste den kode, som aktuelt er i det nydannede vindue !-)
Synes godt om
Ny brugerNybegynder
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.