Javascript esterno

di il
1 risposte

Javascript esterno

Salve a tutti! Premessa: sono decisamente un niubbo e quindi il mio problema potrebbe essere davvero molto stupido.

Ho uno script javascript che crea un testo scorrevole (una sorta di "marquee", compatibile con più browser), che inserisco in un "<div>" nel "<body>" della mia pagina:
/*Specify the marquee's marquee speed (larger is faster 1-10)*/
var marqueespeed=1
/*configure background color:*/
var marqueebgcolor=""
/*Pause marquee onMousever (0=no. 1=yes)?*/
var pauseit=1

/*Specify the marquee's content (don't delete <nobr> tag)
Keep all content on ONE line, and backslash any single quotations (ie: that's great):*/

var marqueecontent='<nobr><p style="margin:0;padding:0;"><?PHP $number = 5; $template = "ticker"; include("/web/htdocs/www.miosito.com/home/cutenews/show_news.php"); ?></p></nobr>'


/*NO NEED TO EDIT BELOW THIS LINE*/
marqueespeed=(document.all)? marqueespeed : Math.max(1, marqueespeed-1) /*slow speed down by 1 for NS*/
var copyspeed=marqueespeed
var pausespeed=(pauseit==0)? copyspeed: 0
var iedom=document.all||document.getElementById
if (iedom)
document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+marqueecontent+'</span>')
var actualwidth=''
var cross_marquee, ns_marquee

function populate(){
if (iedom){
cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee
cross_marquee.style.left=parseInt(marqueewidth)+8+"px"
cross_marquee.innerHTML=marqueecontent
actualwidth=document.all? temp.offsetWidth : document.getElementById("temp").offsetWidth
}
else if (document.layers){
ns_marquee=document.ns_marquee.document.ns_marquee2
ns_marquee.left=parseInt(marqueewidth)+8
ns_marquee.document.write(marqueecontent)
ns_marquee.document.close()
actualwidth=ns_marquee.document.width
}
lefttime=setInterval("scrollmarquee()",20)
}
window.onload=populate

function scrollmarquee(){
if (iedom){
if (parseInt(cross_marquee.style.left)>(actualwidth*(-1)+8))
cross_marquee.style.left=parseInt(cross_marquee.style.left)-copyspeed+"px"
else
cross_marquee.style.left=parseInt(marqueewidth)+8+"px"

}
else if (document.layers){
if (ns_marquee.left>(actualwidth*(-1)+8))
ns_marquee.left-=copyspeed
else
ns_marquee.left=parseInt(marqueewidth)+8
}
}

if (iedom||document.layers){
with (document){
document.write('<table border="0" cellspacing="0" cellpadding="0"><td>')
if (iedom){
write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden">')
write('<div style="position:absolute;width:'+marqueewidth+';height:'+marqueeheight+';background-color:'+marqueebgcolor+'" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">')
write('<div id="iemarquee" style="position:absolute;left:0px;top:0px"></div>')
write('</div></div>')
}
else if (document.layers){
write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee" bgColor='+marqueebgcolor+'>')
write('<layer name="ns_marquee2" left=0px top=0px onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>')
write('</ilayer>')
}
document.write('</td></table>')
}
}
Questo script, nonostante non mi venga validato dal W3C, funziona alla perfezione quando lo inserisco tra i tag "<script type="text/javascript">" e "</script>", nel punto esatto dove voglio che venga visualizzato.

Se però lo copio in un file .js esterno (ovviamente senza "<script...>" e "</script>") e lo richiamo con "src=..." non funziona più! Siccome ho la necessità di usare un file esterno, come posso risolvere questa situazione?

1 Risposte

  • Re: Javascript esterno

    Regulus ha scritto:


    Questo script, nonostante non mi venga validato dal W3C, funziona alla perfezione quando lo inserisco tra i tag "<script type="text/javascript">" e "</script>", nel punto esatto dove voglio che venga visualizzato.

    Se però lo copio in un file .js esterno (ovviamente senza "<script...>" e "</script>") e lo richiamo con "src=..." non funziona più! Siccome ho la necessità di usare un file esterno, come posso risolvere questa situazione?
    Per chiamare lo script all'interno del BODY utilizzi la sintassi <script type="text/javascript" src="mioscript.js"></script>, giusto?
    Posteresti il blocco di codice HTML che ti da problemi? (lo script l'hai scaricato no? Dunque l'errore non dovrebbe essere al suo interno, ma nella relazione fra posizione-chiamata-script)
Devi accedere o registrarti per scrivere nel forum
1 risposte