inserimento più javascript in una pagina

9 contenuti / 0 new
Ultimo contenuto
inserimento più javascript in una pagina

Salve,
utilizzo il seguente codice javascript per lo scorrimento immagini copiato in un blocco e funziona correttamente

<script type="text/javascript" language="JavaScript">
<!--
var slideshow_width='100px'
var slideshow_height='300px'
var pause=5000
var slidebgcolor="#ffffff"
var dropimages=new Array()
dropimages[0]="/sites/default/files/images/cartella/file1.jpg"
dropimages[1]="/sites/default/files/images/cartella/file2.gif"
var droplinks=new Array()
droplinks[0]=""
droplinks[1]=""
var preloadedimages=new Array()
for (p=0;p<dropimages.length;p++){
preloadedimages[p]=new Image()
preloadedimages[p].src=dropimages[p]
}
var ie4=document.all
var dom=document.getElementById
if (ie4||dom)
document.write('<div style="position:relative;width:'+slideshow_width+';height:'+slideshow_height+';overflow:hidden"><div id="canvas0" style="position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';background-color:'+slidebgcolor+';left:-'+slideshow_width+'"></div><div id="canvas1" style="position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';background-color:'+slidebgcolor+';left:-'+slideshow_width+'"></div></div>')
else
document.write('<a href="javascript:rotatelink()"><img name="defaultslide" src="'+dropimages[0]+'" border=0></a>')
var curpos=parseInt(slideshow_width)*(-1)
var degree=10
var curcanvas="canvas0"
var curimageindex=linkindex=0
var nextimageindex=1
function movepic(){
if (curpos<0){
curpos=Math.min(curpos+degree,0)
tempobj.style.left=curpos+"px"
}
else{
clearInterval(dropslide)
nextcanvas=(curcanvas=="canvas0")? "canvas0" : "canvas1"
tempobj=ie4? eval("document.all."+nextcanvas) : document.getElementById(nextcanvas)
var slideimage='<img src="'+dropimages[curimageindex]+'" border=0>'
tempobj.innerHTML=(droplinks[curimageindex]!="")? '<a href="'+droplinks[curimageindex]+'">'+slideimage+'</a>' : slideimage
nextimageindex=(nextimageindex<dropimages.length-1)? nextimageindex+1 : 0
setTimeout("rotateimage()",pause)
}
}
function rotateimage(){
if (ie4||dom){
resetit(curcanvas)
var crossobj=tempobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.style.zIndex++
var temp='setInterval("movepic()",50)'
dropslide=eval(temp)
curcanvas=(curcanvas=="canvas0")? "canvas1" : "canvas0"
}
else
document.images.defaultslide.src=dropimages[curimageindex]
linkindex=curimageindex
curimageindex=(curimageindex<dropimages.length-1)? curimageindex+1 : 0
}
function rotatelink(){
if (droplinks[linkindex]!="")
window.location=droplinks[linkindex]
}
function resetit(what){
curpos=parseInt(slideshow_width)*(-1)
var crossobj=ie4? eval("document.all."+what) : document.getElementById(what)
crossobj.style.left=curpos+"px"
}
function startit(){
var crossobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.innerHTML='<img src="'+dropimages[curimageindex]+'" border=0>'
rotateimage()
}
if (ie4||dom)
window.onload=startit
else
setInterval("rotateimage()",pause)
//-->
</script>

Se volessi utilizzare lo stesso codice per lo scorrimento di altre immagini in un altro blocco della pagina come posso fare dato che così facendo non mi funziona ?

Inoltre se si volessero copiare gli script in files .js e richiamarli dai blocchi in Drupal mi ricordo che si poteva utilizzare:

<?php
drupal_add_js
(path_to_theme() .'js/file1.js');
?>

selezionando l'opzione php del formato input..
Ho provato ma non mi funge! :(
è giusto ? e "pah_to_theme" dovrebbe corrispondere alla cartella del tema quindi nel mio caso dovrei mettere il file1.js in "acquia_prosper"..

Qualcuno mi aiuti..
:)

rispondete perchè tempo fa ho provato anche io a fare una cosa del genere e non mi funzionava. il codice lo hai preso da drupal.org?

Ciao,
hai due metodi (anzi, sarebbero tre se contiamo anche l'inserimento diretto in un blocco/pagina) per inserire un tuo javascript o file javascript. Il primo metodo, se lavori a livello del template, è quello di aggiungere questa riga al file .info del tuo tema:

scripts[] = js/mio_javascript.js

ricordati di ricostruire la cache una volta che modifichi il file .info altrimenti non vedi le modifiche.
Il secondo metodo, invece, viene fatto a livello di moduli ed è appunto:

<?php
 drupal_add_js
();
?>

Da quello che so dovrebbe funzionare solo all'interno di un modulo o di un template, inserito direttamente nel corpo di un nodo o blocco non saprei. Comunque sia, ti accorgi subito se drupal_add_js funziona direttamente dal nodo: vedi il codice sorgente se ha inserito il javascript...
;)

si ma dopo averlo caricato via tema come detto da te gioppy come lo chiamo dai blocchi che desidero?

mi spiego meglio:

tutto il codice postato all'inizio lo inserisco nel file .js e lo carico via tema.

adesso come faccio a dire a drupal che mi deve visualizzare le immagini in 2 blocchi scelti da me?

melissa wrote:
rispondete perchè tempo fa ho provato anche io a fare una cosa del genere e non mi funzionava. il codice lo hai preso da drupal.org?

se ti devo dire la verità no me lo ricordo proprio..

gioppy wrote:
Ciao,
hai due metodi (anzi, sarebbero tre se contiamo anche l'inserimento diretto in un blocco/pagina) per inserire un tuo javascript o file javascript. Il primo metodo, se lavori a livello del template, è quello di aggiungere questa riga al file .info del tuo tema:

scripts[] = js/mio_javascript.js

ricordati di ricostruire la cache una volta che modifichi il file .info altrimenti non vedi le modifiche.
Il secondo metodo, invece, viene fatto a livello di moduli ed è appunto:

<?php
 drupal_add_js
();
?>

Da quello che so dovrebbe funzionare solo all'interno di un modulo o di un template, inserito direttamente nel corpo di un nodo o blocco non saprei. Comunque sia, ti accorgi subito se drupal_add_js funziona direttamente dal nodo: vedi il codice sorgente se ha inserito il javascript...
;)

Si, i metodi li conosco o almeno penso ..hihi
ma due javascript in una stessa pagina mi danno problemi anche se rinomino tutte le variabili..
Il fatto invece che per ora non mi funziona la chiamata diretta

<?php
drupal_add_js
();
?>
al file .js sicuramente è un problema mio.. mi pare infatti di averlo già fatto ma se qualcuno mi può dare delucidazioni in merito gliene sarei grato lo stesso
:)

asdomar wrote:
mi spiego meglio:

tutto il codice postato all'inizio lo inserisco nel file .js e lo carico via tema.

adesso come faccio a dire a drupal che mi deve visualizzare le immagini in 2 blocchi scelti da me?


Se carichi il javascript dal template viene inserito in ogni pagina che utilizza quel template.
Se devi farlo comparire solo in alcuni blocchi devi per forza realizzare un modulo (che non sarebbe nemmeno troppo complesso da realizzare).

Tutti i file collegati al tema, giustamente, vengono caricati quando il tema è utilizzato, altrimenti non avrebbe senso!
;)

marco.latina wrote:

Si, i metodi li conosco o almeno penso ..hihi
ma due javascript in una stessa pagina mi danno problemi anche se rinomino tutte le variabili..
Il fatto invece che per ora non mi funziona la chiamata diretta
<?php
drupal_add_js
();
?>
al file .js sicuramente è un problema mio.. mi pare infatti di averlo già fatto ma se qualcuno mi può dare delucidazioni in merito gliene sarei grato lo stesso
:)

In questo caso direi che è normale che non funzioni, anche se cambi le variabili. Se posso darti un consiglio, e se è fattibile nel tuo caso - non ho visto la funzionalità del javascript - è quello o di utilizzare un plugin di jquery che faccia le stesse cose che fa il tuo script, oppure di realizzare, dallo script che hai fatto, un plugin per jquery in modo che, una volta caricato, puoi assegnarlo a n oggetti.
;)