Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    onclick su file js esterno

    rieccomi

    sto cercando di eliminare alcuni eventi onclick da una pagina, per farlo, ho implementato una funzione che ho nel mio js esterno, ma mi manca un passagio, la funzione è questa:

    codice:
    function popW3C(){
    
    // controllo su tag a e li
    
      if(!document.getElementsByTagName) return;
      var l=document.getElementsByTagName("a");
      var m=document.getElementsByTagName("li");
    
      for(i=0;i<l.length;i++){
    	  
        if (l[i].className.match(/ext/) || l[i].className.match(/extNormal/)){
          l[i].target = "_blank";
        }
    	
    	if (l[i].id.match(/tessere/)){//menù tesseramento
          l[i].target = "_blank";
        }
    	
    	if (l[i].className.match(/popNew/)){//popup
    	  window.open(l[i].href,'popup ' + i,'scrollbars=no,resizable=yes,width=764,height=550,status=no,location=no,toolbar=no'); return false;
        }
    	
      }
    }
    il problema è nella parte in grassetto, giustamente, in questo modo, la popup, si apre all'evento onload, richiamato nella pagina.
    Come posso evitare la cosa ?

    Siccome sono limitato in javascript, esite la possibilità di assegnare una sorta di onclick ad ogni tag <a> con classe "popNew".

    sono dislessico....spero sia comprensibile

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao serialkiller,

    puoi impostare l'onclick del link in questo modo
    codice:
    l[i].onclick=Function("window.open('"+l[i].href+"','popup'+i,'scrollbars=no,resizable=yes,width=764,height=550,status=no,location=no,toolbar=no');return false");

  3. #3
    Originariamente inviato da willybit
    Ciao serialkiller,

    puoi impostare l'onclick del link in questo modo
    codice:
    l[i].onclick=Function("window.open('"+l[i].href+"','popup'+i,'scrollbars=no,resizable=yes,width=764,height=550,status=no,location=no,toolbar=no');return false");
    si si si...ci stavo arrivando.....ma

    io ho questo, dentro al ciclo

    codice:
    	if (l[i].className.match(/popNew/)){//popup
    	  l[i].onclick=function(){window.open(this.href, 'popup ' + i, "width=764, height=550");return(false)};
    	}
    solo che non capisco il perchè....ma se ho anche solo 2 classi "popNew", lui considera sempre e solo la prima


  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da serialkiller
    si si si...ci stavo arrivando.....ma

    io ho questo, dentro al ciclo

    codice:
    	if (l[i].className.match(/popNew/)){//popup
    	  l[i].onclick=function(){window.open(this.href, 'popup ' + i, "width=764, height=550");return(false)};
    	}
    solo che non capisco il perchè....ma se ho anche solo 2 classi "popNew", lui considera sempre e solo la prima

    come imposti l'onclick tu è sbagliato... il discorso "lui considera sempre e solo la prima" non l'ho capito :master:

  5. #5
    intanto ciao, che prima nemmeno ti ho salutato

    non avevo visto le differenze

    visto che ci sei ho ancora 1 cosetta


    codice:
    	for(p=0;p<m.length;p++){
    		
        if (m[p].id.match(/profilo/)){
    	m[p].onclick=Function("ctrlMenu("+m[p].id+",0); return false");
        }
    	
    	}
    poco più sotto ho questa parte di codice, sempre dentro alla medesima funzione, faccio un ciclo diverso, perchè in questo caso il controllo è sul selettore[*] e non <a>

    sulla pagina l'attributo onclick è:

    codice:
    onclick="ctrlMenu(this,0); return false;"
    cosa sbaglio qui ?

    mi dice che profilo non è definito

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    cosa deve fare la funzione ctrlMenu? hai più tag[*] con id="profilo"?
    non sapendo altro il massimo che ti posso consigliare è
    codice:
    m[p].onclick=Function("ctrlMenu(this,0); return false");

  7. #7
    Originariamente inviato da willybit
    cosa deve fare la funzione ctrlMenu? hai più tag[*] con id="profilo"?
    non sapendo altro il massimo che ti posso consigliare è
    codice:
    m[p].onclick=Function("ctrlMenu(this,0); return false");
    infatti ho appena risolto così

    non ho capito perchè ma funziona

    di id profilo c'è nè uno solo ovviamente

    senti, ancora una cosa poi giuro che non rompo più

    facendo così è vero funziona, ma credo di avere qualcosina da modificare, nei controlli, se non dico una cavolata match, controlla l'esistenza della tal stringa in una seconda stringa di paragone, cosa devo usare in modo che il controllo sia totale....mi spiego, se la classe è "pippo", non mi deve considerare anche "pippoPluto".

    codice:
    if (m[p].id.indexOf("profilo")>=0){...
    ma credo sia simile a match

    o semplicemente

    codice:
    if (m[p].id == "profilo"){...

  8. #8
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    il match come parametro vuole una regular expression
    se vuoi trovare che sia esattamente "pippo" sarebbe
    TuaStringa.match(/^pippo$/)
    che equivale a
    TuaStringa=='pippo'

  9. #9
    niente, ho provato anche così

    codice:
    m[p].onclick=Function("ctrlMenu('"+m[p].id+"',0); return false;");
    ma non funziona, sono costretto a cambiare i nomi id

    perchè se ho un id="pippo" e un id="pippoDue", me li da buoni entrambi

  10. #10
    Originariamente inviato da willybit
    il match come parametro vuole una regular expression
    se vuoi trovare che sia esattamente "pippo" sarebbe
    TuaStringa.match(/^pippo$/)
    che equivale a
    TuaStringa=='pippo'
    quindi così dovrebbe funzionare

    codice:
        if (m[p].id == "profilo" || m[p].id == "settore" || m[p].id == "sala_stampa" || m[p].id == "link"){
    	m[p].onclick=Function("ctrlMenu('"+m[p].id+"',0); return false;");
        }
    ma non funziona

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.