Avatar billede kometen79 Nybegynder
10. april 2004 - 02:21 Der er 13 kommentarer og
1 løsning

Fejl hvis DIV tags mangler

Jeg har includeret et .js dokument med en masse forskellige funktioner bl.a. et nyhedsmodul. Men det er ikke alle sider det skal være synligt. Men fjerner jeg følgende kode giver det en fejlmeddelelse:

<div id="divNewsCont">
      <div id="divNews">
        Default text, this is the text that 3.x browsers will see
            You can have lot's of ˜ here in stead. Or you can use a
            script to write in text only if it's Netscape 4 (you have to
            do that so that the layer gets some content or the written in text
            won't show correct.
    </div>
</div>

Hvad kan jeg gøre så jeg ikke får fejlen?
Avatar billede thesurfer Nybegynder
10. april 2004 - 02:37 #1
I dit script, har du da prøvet noget i stil med?:

if ( document.getElementById('divNewsCont') && document.getElementById('divNews') ) {
// udfør nyhedsscriptet
}
Avatar billede roenving Novice
10. april 2004 - 02:38 #2
Så må der i koden være noget, som skjuler de divs, som så ikke kan findes, hvis du fjerner dem ...

-- og bortset fra at det jo fylder en lille smule i koden er der vel ikke så meget galt i, at give noget til v3-browsere ...

-- du må give en henvisning til js-koden !-)
Avatar billede roenving Novice
10. april 2004 - 02:43 #3
-- og egentlig er det vel de containere dine nyheder bliver vist i ...
Avatar billede kometen79 Nybegynder
10. april 2004 - 03:34 #4
Det er her dan laver fejlen:

this.css=bw.dom? document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+"document.layers." +obj):0;   


En større del af koden kan ses her:

function makeNewsObj(obj,nest,font,size,color,news,fadespeed,betweendelay,slidespeed,works,newsheight){
    nest=(!nest) ? "":'document.'+nest+'.'
      this.css=bw.dom? document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+"document.layers." +obj):0;   
      this.writeref=bw.dom? document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+"document.layers." +obj+".document"):0;
    if(font){this.color=new Array(); this.color=eval(color); this.news=new Array(); this.news=eval(news)
        this.font=font; this.size=size; this.speed=fadespeed; this.delay=betweendelay; this.newsheight=newsheight;
        this.fadeIn=b_fadeIn;this.fadeOut=b_fadeOut; this.newsWrite=b_newsWrite; this.y=1
        this.slideIn=b_slideIn; this.moveIt=b_moveIt; this.slideSpeed=slidespeed; this.works=works
        if(bw.dom || bw.ie4){this.css.fontFamily=this.font; this.css.fontSize=this.size; this.css.color=this.color[0]}
    }
    this.obj = obj + "Object";     eval(this.obj + "=this"); return this
}

// A unit of measure that will be added when setting the position of a layer.
var px = bw.ns4||window.opera?"":"px";

function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x+px; this.css.top=this.y+px;}

function b_newsWrite(num,i){
    if (bw.ns4){
        this.writeref.write("<a href=\""+this.news[num]['link']+"\" target=\"myTarget\" style=\"text-decoration:none; font-size:"+this.size+"px\">"
            +"<font face=\""+this.font+"\" color=\""+this.color[i]+"\">"+this.news[num]['text']+"</font></a>")
        this.writeref.close()
    }else this.writeref.innerHTML = '<div id="'+this.obj+'link' +'" style="text-decoration:none; font-size:'+this.size+'px; color:'+this.color[i]+'"><b>'+this.news[num]['text']+'</b><br>Oprettet: '+this.news[num]['date']+'<br><br>'+this.news[num]['link']+'<br><br><a href="news.asp?news_id='+this.news[num]['tal']+'">Læs mere...</a></div>'
}
//Slide in
function b_slideIn(num,i){
    if (this.y>0){
        if (i==0){this.moveIt(0,this.newsheight); this.newsWrite(num,this.color.length-1)}
        this.moveIt(this.x,this.y-this.slideSpeed)
        i ++
        setTimeout(this.obj+".slideIn("+num+","+i+");",50)
    }else setTimeout(this.obj+".fadeOut("+num+","+(this.color.length-1)+")",this.delay)
}
//The fade functions
function b_fadeIn(num,i){
    if (i<this.color.length){
        if (i==0 || bw.ns4) this.newsWrite(num,i)
        else{
            obj = bw.ie4?eval(this.obj+"link"):document.getElementById(this.obj+"link")
            obj.style.color = this.color[i]
        }
        i ++
        setTimeout(this.obj+".fadeIn("+num+","+i+")",this.speed)
    }else setTimeout(this.obj+".fadeOut("+num+","+(this.color.length-1)+")",this.delay)
}

function b_fadeOut(num,i){
    if (i>=0){
        if (i==0 || bw.ns4) this.newsWrite(num,i)   
        else{
            obj = bw.ie4?eval(this.obj+"link"):document.getElementById(this.obj+"link")
            obj.style.color = this.color[i]
        }
        i --
        setTimeout(this.obj+".fadeOut("+num+","+i+")",this.speed)
    }else{
        num ++
        if(num==this.news.length) num=0
        works = !this.works?0:this.works==1?1:Math.round(Math.random())
        if(works==0) setTimeout(this.obj+".fadeIn("+num+",0)",500)
        else if (works==1){this.y=1; setTimeout(this.obj+".slideIn("+num+",0)",500)
        }
    }
}
Avatar billede roenving Novice
10. april 2004 - 03:41 #5
Kan det så ikke passe, at du har noget kode, som f.eks. ser sådan ud:

NYHED = makeNewsObj('divNews', ...
Avatar billede kometen79 Nybegynder
10. april 2004 - 03:43 #6
Her er noget i den stil ;-)

function fadeInit(){
    oNews = new makeNewsObj('divNews','divNewsCont',nFont,nFontsize,"nColor","nNews",nFadespeed,nBetweendelay,nSlidespeed,nWorks,nNewsheight)
    oNewsCont = new makeNewsObj('divNewsCont')
    works = !oNews.works?0:oNews.works==1?1:Math.round(Math.random())
    if (works==0) oNews.fadeIn(0,0)
    else if (works==1) oNews.slideIn(0,0)
    oNewsCont.css.visibility = "visible"
}
Avatar billede roenving Novice
10. april 2004 - 04:12 #7
-- så kan du ikke undvære de divs !-)

Nyhedssystemet er åbenbart baseret på, at nyhederne skrives i de div-tags, så de er en nødvendig del af det !o]
Avatar billede thesurfer Nybegynder
10. april 2004 - 13:16 #8
roenving> Kan man ikke lave noget smart (et check)? noget i stil med:

function fadeInit(){
if ( document.getElementById('divNewsCont') && document.getElementById('divNews') ) {
    oNews = new makeNewsObj('divNews','divNewsCont',nFont,nFontsize,"nColor","nNews",nFadespeed,nBetweendelay,nSlidespeed,nWorks,nNewsheight)
    oNewsCont = new makeNewsObj('divNewsCont')
    works = !oNews.works?0:oNews.works==1?1:Math.round(Math.random())
    if (works==0) oNews.fadeIn(0,0)
    else if (works==1) oNews.slideIn(0,0)
    oNewsCont.css.visibility = "visible"
}
}
Avatar billede roenving Novice
10. april 2004 - 13:55 #9
Selvfølgelig kan man det, men det er vel ikke relevant at installere et nyhedssystem og så fjerne de elementer, som viser nyhederne ...
Avatar billede kometen79 Nybegynder
16. april 2004 - 08:10 #10
Lukker
Avatar billede roenving Novice
17. april 2004 - 00:34 #11
Hrm, du skal da vist have lært noget ganske almindelig pli ...

Først stiller du en række spørgsmål og beder andre interessere dig for dine problemer, bagefter pisser du bare på os ...

Det er zq for dårligt ,-(
Avatar billede kometen79 Nybegynder
18. april 2004 - 21:53 #12
Sorry! Jeg havde ikke set de sidste svar. men det fungere ikke. Som et plaster på såret er 100 point hvis du kan få den til at fungere.

Jeg er ked af det...;-)
Avatar billede kometen79 Nybegynder
18. april 2004 - 21:56 #13
Den laver fejlen i denne her linie efter jeg har sat det nedenunder ind:     

this.css=bw.dom? document.getElementById(obj).style:bw.ie4?document.all


Ny kode:
function fadeInit(){
if ( document.getElementById('divNewsCont') && document.getElementById('divNews') ) {
    oNews = new makeNewsObj('divNews','divNewsCont',nFont,nFontsize,"nColor","nNews",nFadespeed,nBetweendelay,nSlidespeed,nWorks,nNewsheight)
    oNewsCont = new makeNewsObj('divNewsCont')
    works = !oNews.works?0:oNews.works==1?1:Math.round(Math.random())
    if (works==0) oNews.fadeIn(0,0)
    else if (works==1) oNews.slideIn(0,0)
    oNewsCont.css.visibility = "visible"
}
}

Istedet for det her:

function fadeInit(){
    oNews = new makeNewsObj('divNews','divNewsCont',nFont,nFontsize,"nColor","nNews",nFadespeed,nBetweendelay,nSlidespeed,nWorks,nNewsheight)
    oNewsCont = new makeNewsObj('divNewsCont')
    works = !oNews.works?0:oNews.works==1?1:Math.round(Math.random())
    if (works==0) oNews.fadeIn(0,0)
    else if (works==1) oNews.slideIn(0,0)
    oNewsCont.css.visibility = "visible"
}
Avatar billede roenving Novice
18. april 2004 - 22:00 #14
Jamen du kan da ikke fjerne de containere, som indeholder dit nyhedssystem ...

Det svarer til at forsøge at koge vand over et bål, men undlade at bruge et eller andet til at have vandet i ...

Du slukker bålet, når du hælder vandet over varmen !-)
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

Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging