Visualizzazione dei risultati da 1 a 3 su 3

Discussione: O uno o l'altro???

  1. #1

    O uno o l'altro???

    Ciao a tutti!
    Mi sto spaccando la testa... ma sono un niubbo, quindi magari qualcuno ha una soluzione semplice! :-)
    Sto utilizzando due script nella stessa pagina e non capisco perchè l'aggiunta del terzo mi invalida gli altri due... sono i seguenti:


    <script type="text/javascript">

    function NiftyCheck(){
    if(!document.getElementById || !document.createElement)
    return(false);
    isXHTML=/html\:/.test(document.getElementsByTagName('form')[0].nodeName);
    if(Array.prototype.push==null){Array.prototype.pus h=function(){
    this[this.length]=arguments[0]; return(this.length);}}
    return(true);
    }

    function Rounded(selector,wich,bk,color,opt){
    var i,prefixt,prefixb,cn="r",ecolor="",edges=false,ecl ass="",b=false,t=false;

    if(color=="transparent"){
    cn=cn+"x";
    ecolor=bk;
    bk="transparent";
    }
    else if(opt && opt.indexOf("border")>=0){
    var optar=opt.split(" ");
    for(i=0;i<optar.length;i++)
    if(optar[i].indexOf("#")>=0) ecolor=optar[i];
    if(ecolor=="") ecolor="#666";
    cn+="e";
    edges=true;
    }
    else if(opt && opt.indexOf("smooth")>=0){
    cn+="a";
    ecolor=Mix(bk,color);
    }
    if(opt && opt.indexOf("small")>=0) cn+="s";
    prefixt=cn;
    prefixb=cn;
    if(wich.indexOf("all")>=0){t=true;b=true}
    else if(wich.indexOf("top")>=0) t="true";
    else if(wich.indexOf("tl")>=0){
    t="true";
    if(wich.indexOf("tr")<0) prefixt+="l";
    }
    else if(wich.indexOf("tr")>=0){
    t="true";
    prefixt+="r";
    }
    if(wich.indexOf("bottom")>=0) b=true;
    else if(wich.indexOf("bl")>=0){
    b="true";
    if(wich.indexOf("br")<0) prefixb+="l";
    }
    else if(wich.indexOf("br")>=0){
    b="true";
    prefixb+="r";
    }
    var v=getElementsBySelector(selector);
    var l=v.length;
    for(i=0;i<l;i++){
    if(edges) AddBorder(v[i],ecolor);
    if(t) AddTop(v[i],bk,color,ecolor,prefixt);
    if(b) AddBottom(v[i],bk,color,ecolor,prefixb);
    }
    }

    function AddBorder(el,bc){
    var i;
    if(!el.passed){
    if(el.childNodes.length==1 && el.childNodes[0].nodeType==3){
    var t=el.firstChild.nodeValue;
    el.removeChild(el.lastChild);
    var d=CreateEl("span");
    d.style.display="block";
    d.appendChild(document.createTextNode(t));
    el.appendChild(d);
    }
    for(i=0;i<el.childNodes.length;i++){
    if(el.childNodes[i].nodeType==1){
    el.childNodes[i].style.borderLeft="1px solid "+bc;
    el.childNodes[i].style.borderRight="1px solid "+bc;
    }
    }
    }
    el.passed=true;
    }

    function AddTop(el,bk,color,bc,cn){
    var i,lim=4,d=CreateEl("b");

    if(cn.indexOf("s")>=0) lim=2;
    if(bc) d.className="artop";
    else d.className="rtop";
    d.style.backgroundColor=bk;
    for(i=1;i<=lim;i++){
    var x=CreateEl("b");
    x.className=cn + i;
    x.style.backgroundColor=color;
    if(bc) x.style.borderColor=bc;
    d.appendChild(x);
    }
    el.style.paddingTop=0;
    el.insertBefore(d,el.firstChild);
    }

    function AddBottom(el,bk,color,bc,cn){
    var i,lim=4,d=CreateEl("b");

    if(cn.indexOf("s")>=0) lim=2;
    if(bc) d.className="artop";
    else d.className="rtop";
    d.style.backgroundColor=bk;
    for(i=lim;i>0;i--){
    var x=CreateEl("b");
    x.className=cn + i;
    x.style.backgroundColor=color;
    if(bc) x.style.borderColor=bc;
    d.appendChild(x);
    }
    el.style.paddingBottom=0;
    el.appendChild(d);
    }

    function CreateEl(x){
    if(isXHTML) return(document.createElementNS('http://www.w3.org/1999/xhtml',x));
    else return(document.createElement(x));
    }

    function getElementsBySelector(selector){
    var i,selid="",selclass="",tag=selector,f,s=[],objlist=[];

    if(selector.indexOf(" ")>0){ //descendant selector like "tag#id tag"
    s=selector.split(" ");
    var fs=s[0].split("#");
    if(fs.length==1) return(objlist);
    f=document.getElementById(fs[1]);
    if(f) return(f.getElementsByTagName(s[1]));
    return(objlist);
    }
    if(selector.indexOf("#")>0){ //id selector like "tag#id"
    s=selector.split("#");
    tag=s[0];
    selid=s[1];
    }
    if(selid!=""){
    f=document.getElementById(selid);
    if(f) objlist.push(f);
    return(objlist);
    }
    if(selector.indexOf(".")>0){ //class selector like "tag.class"
    s=selector.split(".");
    tag=s[0];
    selclass=s[1];
    }
    var v=document.getElementsByTagName(tag); // tag selector like "tag"
    if(selclass=="")
    return(v);
    for(i=0;i<v.length;i++){
    if(v[i].className.indexOf(selclass)>=0){
    objlist.push(v[i]);
    }
    }
    return(objlist);
    }

    function Mix(c1,c2){
    var i,step1,step2,x,y,r=new Array(3);
    if(c1.length==4)step1=1;
    else step1=2;
    if(c2.length==4) step2=1;
    else step2=2;
    for(i=0;i<3;i++){
    x=parseInt(c1.substr(1+step1*i,step1),16);
    if(step1==1) x=16*x+x;
    y=parseInt(c2.substr(1+step2*i,step2),16);
    if(step2==1) y=16*y+y;
    r[i]=Math.floor((x*50+y*50)/100);
    }
    return("#"+r[0].toString(16)+r[1].toString(16)+r[2].toString(16));
    }
    </script>













    <script type="text/javascript">
    window.onload=function(){
    if(!NiftyCheck())
    return;
    Rounded("div#rh-col","all","transparent","#6B7A0A","border #333333");
    Rounded("div#banner1","top","#6B7A0A","transparent ","border #333333");
    }
    </script>



    Fino a qui tutto funziona, ma quando aggiungo il terzo, i primi due (che mi rendono gli angloli dei div rotondi, non funzionano più!)






    <script type="text/javascript">

    function selectReplacement(obj) {
    obj.className += ' replaced';
    var ul = document.createElement('ul');
    ul.className = 'selectReplacement';
    var opts = obj.options;
    for (var i=0; i<opts.length; i++) {
    var selectedOpt;
    if (opts[i].selected) {
    selectedOpt = i;
    break;
    } else {
    selectedOpt = 0;
    }
    }
    for (var i=0; i<opts.length; i++) {
    var li = document.createElement('li');
    var txt = document.createTextNode(opts[i].text);
    li.appendChild(txt);
    li.selIndex = opts[i].index;
    li.selectID = obj.id;
    li.onclick = function() {
    selectMe(this);
    }
    if (i == selectedOpt) {
    li.className = 'selected';
    li.onclick = function() {
    this.parentNode.className += ' selectOpen';
    this.onclick = function() {
    selectMe(this);
    }
    }
    }
    if (window.attachEvent) {
    li.onmouseover = function() {
    this.className += ' hover';
    }
    li.onmouseout = function() {
    this.className =
    this.className.replace(new RegExp(" hover\\b"), '');
    }
    }
    ul.appendChild(li);
    }
    obj.parentNode.insertBefore(ul,obj);
    }
    function selectMe(obj) {
    var lis = obj.parentNode.getElementsByTagName('li');
    for (var i=0; i<lis.length; i++) {
    if (lis[i] != obj) {
    lis[i].className='';
    lis[i].onclick = function() {
    selectMe(this);
    }
    } else {
    setVal(obj.selectID, obj.selIndex);
    obj.className='selected';
    obj.parentNode.className =
    obj.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
    obj.onclick = function() {
    obj.parentNode.className += ' selectOpen';
    this.onclick = function() {
    selectMe(this);
    }
    }
    }
    }
    }
    function setVal(objID, selIndex) {
    var obj = document.getElementById(objID);
    obj.selectedIndex = selIndex;
    }
    function setForm() {
    var s = document.getElementsByTagName('select');
    for (var i=0; i<s.length; i++) {
    selectReplacement(s[i]);
    }
    }
    window.onload = function() {
    (document.all && !window.print) ? null : setForm();
    }

    </script>



    Qualcuno saprebbe dirmi cosa fare???
    Grazie mille per l'attenzione!

    Sam

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    sovrascrittura di onload, gia' trattato tante volte

    o sistemi questa cosi'
    codice:
    <script type="text/javascript">
    window.onload=function(){
    
    (document.all && !window.print) ? null : setForm();
    
    if(!NiftyCheck())
    return;
    Rounded("div#rh-col","all","transparent","#6B7A0A","border #333333");
    Rounded("div#banner1","top","#6B7A0A","transparent","border #333333");
    }
    </script>
    e rimuovi questa
    codice:
     window.onload = function() {
    (document.all && !window.print) ? null : setForm();
    }
    o rimuovi questo

    <script type="text/javascript">
    window.onload=function(){
    if(!NiftyCheck())
    return;
    Rounded("div#rh-col","all","transparent","#6B7A0A","border #333333");
    Rounded("div#banner1","top","#6B7A0A","transparent ","border #333333");
    }
    </script>
    e modifichi questa in
    codice:
     window.onload = function() {
    (document.all && !window.print) ? null : setForm();
    
    if(!NiftyCheck())
    return;
    Rounded("div#rh-col","all","transparent","#6B7A0A","border #333333");
    Rounded("div#banner1","top","#6B7A0A","transparent","border #333333");
    
    }
    insomma, il sistema piu' facile e' accorpare i vari window.onload in uno solo
    ciao

  3. #3
    Ciao!

    sovrascrittura di onload, gia' trattato tante volte
    Si, avevo trovato qualcosa del genere ma... da solo non sono riuscito a sistemarlo!


    insomma, il sistema piu' facile e' accorpare i vari window.onload in uno solo
    Grazie mille!!! Così funziona!!!
    Grazie ancora!

    Sam

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 © 2026 vBulletin Solutions, Inc. All rights reserved.