Avatar billede morden.dk Nybegynder
07. maj 2001 - 18:09 Der er 9 kommentarer

innerHTML IE5 på MAC

Hvorfor hulen virker en ganske almindelig \'skrive-til-lag-funktion\' ikke i IE5 på MAC? Jeg har prøvet at generere HTML-strengen på alle mulige måder. Hvis jeg skriver strengen til et andet dokument, og derefter paster denne ind i HTML koden, i laget på min side, ser indholdet fint ud. Jeg kan bare ikke få lov til at skrive det \'på fluen\', indholdet smaskes sammen og lagets position skifter - ser det ud til.

Eksemplet er en random nyheds \'ting\' og ser p.t. således ud:

<script language=\"javascript\">

function Href(url,image,date,titel,text) {
  this.url  = url;
  this.image = image;
  this.date  = date;
  this.titel = titel;
  this.text  = text;
}
function setHref(url,image,date,titel,text) {
  myHref[hrefItems++] = new Href(url,image,date,titel,text);
}

var random = 0;
var lastrandom = -1;

var hrefItems = 0;
var myHref = new Array();

<% showMessage getNumberOfItems(),0 %>

function replace(previous) {

    random = previous + 1;
    if(random >= hrefItems){
      random = 0;
    };

    newstable = \'<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"308\">\';
    newstable += \'<tr><td width=\"146\"><a href=\"\'+myHref[random].url+\'\" target=\"_top\"><img name=\"banner\" width=\"146\" height=\"198\" border=\"0\" \';
    if(myHref[random].image != \'\'){
      newstable += \'alt=\"Image\" src=\"\'+myHref[random].image+\'\"></a>\';
    }else{
      newstable += \'alt=\"Image\" src=\"upload/images/mand.jpg\"></a>\';
    };
    newstable += \'</td>\';
    newstable += \'<td align=\"left\" valign=\"top\" bgcolor=\"#004477\">\';
    newstable += \'<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"162\">\';
    newstable += \'<tr>\';
    newstable += \'<td colspan=\"3\"><img src=\"images/nyheder_overskrift.gif\" width=\"162\" height=\"20\"></td>\';
    newstable += \'</tr>\';
    newstable += \'<tr>\';
    newstable += \'<td width=\"10\" height=\"25\">&nbsp;</td>\';
    newstable += \'<td width=\"147\" class=\"ForsideNyhedTekst\" height=\"25\">\'+myHref[random].date+\'</td>\';
    newstable += \'<td width=\"5\" height=\"25\">&nbsp;</td>\';
    newstable += \'</tr>\';
    newstable += \'<tr>\';
    newstable += \'<td width=\"10\" height=\"30\">&nbsp;</td>\';
    newstable += \'<td width=\"147\" class=\"ForsideNyhedOverskrift\" height=\"30\"><a href=\"\'+myHref[random].url+\'\" target=\"_top\" class=\"ForsideNyhedOverskrift\">\'+myHref[random].titel+\'</a></td>\';
    newstable += \'<td width=\"5\" height=\"30\">&nbsp;</td>\';
    newstable += \'</tr>\';
    newstable += \'<tr>\';
    newstable += \'<td width=\"10\">&nbsp;</td>\';
    newstable += \'<td width=\"147\" class=\"ForsideNyhedTekst\">\'+myHref[random].text+\'</td>\';
    newstable += \'<td width=\"5\">&nbsp;</td>\';
    newstable += \'</tr>\';
    newstable += \'</table>\';
    newstable += \'</td>\';
    newstable += \'</tr>\';
    newstable += \'</table>\';
   
    repeatthis = \'replace(\'+random+\')\'
    setTimeout(repeatthis,5000);
    lastrandom = random;


    if (document.all){
        document.all[\"container\"].innerHTML = newstable;
    }
    else if (document.layers) {
          document.layers[\"container\"].document.open();
          document.layers[\"container\"].document.write(newstable);
          document.layers[\"container\"].document.close();
    }

}
var now = new Date();
var starNumber;
startNumber = now.getSeconds()%hrefItems;
</script>

<BODY BGCOLOR=\"#004477\" LEFTMARGIN=\"0\" TOPMARGIN=\"0\" MARGINWIDTH=\"0\" MARGINHEIGHT=\"0\" onLoad=\"replace(startNumber);\">
<div id=\"container\" style=\"position:absolute; left:327px; top:79px; width:308px;  z-index:1; visibility:visible;\">

</div>
</body>
</html>
Avatar billede olebole Juniormester
08. maj 2001 - 09:36 #1
<ole>
Det handler ikke om platform/browser kombinationen. Prøv at lave følgende:

function skriv() {
    var newstable = \"Det virker zq...!\";
    if (document.all){
        document.all[\"container\"].innerHTML = newstable;
    }
    else if (document.layers) {
          document.layers[\"container\"].document.open();
          document.layers[\"container\"].document.write(newstable);
          document.layers[\"container\"].document.close();
    }
}

...og så i din body:

<div id=\"container\" style=\"position:absolute; left:327px; top:79px; width:308px;  z-index:1; visibility:visible;\"></div>

Det skulle meget gerne virke  :o)
/mvh
</bole>
Avatar billede morden.dk Nybegynder
10. maj 2001 - 15:27 #2
Ja det ved jeg, men så snart der bare er en smule HTML formatering (simpel tabel eller lign.) renderer den det mildest talt elendigt :(
Avatar billede olebole Juniormester
10. maj 2001 - 15:44 #3
Nå...!  :o)
Jeg er inkarneret Macintosse og kender ikke problemet...på trods af, jeg har skrevet hele sider - og ret komplicerede eksemplarer - ud i lag.
Prøv at smide et par eksempler op på en server, så vi kan se, hvad du mener.
/mvh
Avatar billede morden.dk Nybegynder
10. maj 2001 - 15:46 #4
Det er forsiden på http://www.frelsens-haer.dk, og jeg gør sikkert noget forkert, jeg kan bare ikke lige greje det :)
Avatar billede morden.dk Nybegynder
10. maj 2001 - 15:46 #5
Vil godt lige sige at jeg ikke har lavet sitet.
Avatar billede olebole Juniormester
10. maj 2001 - 16:06 #6
Hmmm....umiddelbart kan jeg ikke se noget galt i din kode - prøver at kikke nærmere på den senere  :o)
/mvh
Avatar billede morden.dk Nybegynder
10. maj 2001 - 16:07 #7
Tak, jeg har ikke så mange erfaringer med MAC (hvis det er det der er probbet) :)
Avatar billede olebole Juniormester
10. maj 2001 - 16:14 #8
;o) Anytime...
Avatar billede olebole Juniormester
08. juni 2001 - 14:12 #9
Hvis du taler om funktionen \'replace()\', ville det måske være en fordel at kalde den...det gør du aldrig og så er der jo ikke noget at sige til, den ikke skriver noget  ;oD
/mvh
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