Avatar billede encory Nybegynder
22. januar 2004 - 12:47 Der 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();   
}
Avatar billede roenving Novice
22. januar 2004 - 13:02 #1
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();   
}
Avatar billede encory Nybegynder
22. januar 2004 - 13:16 #2
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();   
}
Avatar billede roenving Novice
22. januar 2004 - 13:23 #3
Jeg kan sige, at jeg selv går med livrem og seler, så _alle_ lukketags er udstyret med \57 _og_ delt i to, når jeg sætter javascript ind i vinduer:

function velgDato( ) {
    var html="<html><head><title>Kalender<\57ti"+"tle><LINK REL='stylesheet' TYPE='text/css' HREF='"+ webGenCssUrl +"ActiveX.css'><script src='"+ webGenJSUrl +"webGenCalendar.js'><\57sc"+"ript><\57he"+"ad><body><form><table border='1' cellpadding='2' cellspacing='2'><tr><td colspan=2><a class='menu' href='java script:prevMonth();'>Forrige<\57a><\57td><td colspan=3 align='center'><span class='maintext'><script>document.write(maneder[mo]+" "+yr);<\57scr"+"ipt><\57sp"+"an><\57td><td colspan=2 align='right'><a class='menu' href='java script:nextMonth();'>Næste<\57a><\57td><\57tr><span class='maintext'><script>tegnKalend();<\57scr"+"ipt><\57sp"+"an><\57ta"+"ble><\57fo"+"rm><\57bo"+"dy><\57ht"+"ml>";
    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();   
}
Avatar billede roenving Novice
22. januar 2004 - 13:24 #4
Så også lige, at der var 3 gange </script> og jeg havde kun rettet de to af dem ...
Avatar billede encory Nybegynder
22. januar 2004 - 13:31 #5
Den fejler stadig med et: 'objekt ventet' kode 0

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'>&nbsp;</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();
}
Avatar billede encory Nybegynder
22. januar 2004 - 23:49 #6
Er der ingen der kan løse dette ???
Avatar billede encory Nybegynder
24. januar 2004 - 11:23 #7
Jeg lukker dette spørgsmål da ingen åbenbart kan hjælpe med en løsning der virker.
Avatar billede roenving Novice
24. januar 2004 - 13:41 #8
Prøv at paste den kode, som aktuelt er i det nydannede vindue !-)
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