Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [urgente] problema JavaScript e custom attributes

    ho un grosso problema in javascript...
    non riesco a gestire gli attributi non standard

    esempio:
    codice:
    <div id="readroot" count="4" align="right" style="display: none; border-style:solid; border-width:thin;">
    count è chiaramente il mio custom attribute.

    ho una funzione javascript che deve sfruttare tale attributo come contatore per evitare di togliere o aggiungere oltre un minimo o un massimo di campi (uso le funzionalità DOM per togliere e aggiungere sottoalberi)

    ho provato ma mentre per vedere il value dello style funziona per il count no... ecco il codice di prova:
    codice:
    function moreFields()
    {
    	alert("Entra...");
    	var myel = document.getElementById('readroot');
    	var myval = myel.attributes['style'];
    	alert('style: '+myval.value);
    	var myval = myel.attributes['align'];
    	alert('align: '+myval.value);
    	var myval = myel.attributes['count'];
    	alert('count: '+myval.value);
    	alert("...Esce");
    }

    aiutatemi per piacere!

  2. #2
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087
    il browser non decodifica gli attributi errati e count non è un attributo esistente (HTML)
    a meno che tu non stia lavorando in xml .. ma non credo!
    e poi sinceramente neanche dal codice ho capito il tuo problema
    ciao

  3. #3
    pensavo anche io, ma...

    allora:
    io ho uno script che mi aggiunge o toglie una parte di un form
    da 0 a inf... (copia una parte dell'albero DOM con Javascript)

    io vorrei limitarlo con un min e/o un max in modo da non tagliare o aggiungere oltre i bordi...

    il problema è appunto oltre i bordi... e considerato che non so a priori quanti saranno i set di campi con sto problema, non so come risolvere!


    cmq i custom tag funzionano mi pare, guarda questo codice:

    codice:
     <html>
    <head>
    <title>Custom Tooltip Sample</title>
    <script type="text/javascript" language="javascript">
    //general properties:
    var _tooltipPauseBeforeShow=100; //miliseconds to pause before showing the tooltip.
    var _tooltipDelay=7; //seconds before auto hiding. set 0 to make it permanent.
    var _tooltipBgColor="yellow"; //background color of tooltip box
    var _tooltipTextColor="black"; //color of tooltip text.
    var _tooltipFontFamily="Tahoma"; //font family of tooltip text.
    var _tooltipFontSize=12; //font size of tooltip text.
    var _tooltipFontBold=true; //whether the tooltip text will be bold or not
    
    //private data:
    var _tooltipContainerName="TooltipContainer_V1";
    
    window.onload=function WindowLoad(event)
    {
    var arrSpans=document.getElementsByTagName("span");
    var tooltipCount=0;
    for (var i=0; i<arrSpans.length; i++)
    {
    var objSpan=arrSpans[i];
    if ((objSpan.attributes["tooltip_v1"])&&(objSpan.attributes["tooltip_v1"].value.length > 0))
    {
    objSpan.onmouseover = ShowToolTip;
    objSpan.onmouseout = HideToolTip;
    tooltipCount++;
    }
    }
    if (tooltipCount > 0)
    document.onclick=HideToolTip;
    }
    
    function ShowToolTip(event)
    {
    //get windows event:
    if ((typeof event == "undefined")||(!event))
    event = window.event;
    
    //get container:
    var objContainer=document.getElementById(_tooltipContainerName);
    
    //get source element:
    var objSource=event.srcElement||event.target;
    
    //abort if no source available:
    if ((typeof objSource == "undefined")||(!objSource))
    return false;
    
    //create if does not exist:
    if (!objContainer)
    {
    objContainer = document.createElement("div");
    objContainer.id = _tooltipContainerName;
    objContainer.style.backgroundColor = _tooltipBgColor;
    objContainer.style.color = _tooltipTextColor;
    objContainer.style.fontFamily = _tooltipFontFamily;
    objContainer.style.fontSize = _tooltipFontSize;
    if (_tooltipFontBold)
    objContainer.style.fontWeight = "bold";
    objContainer.style.position = "absolute";
    objContainer.style.display = "none";
    document.body.appendChild(objContainer);
    }
    
    //get mouse position:
    var mouseX=event.x||event.pageX;
    var mouseY=event.y||event.pageY;
    
    //get body scroll:
    var scrollX=document.body.scrollLeft;
    var scrollY=document.body.scrollTop;
    
    //set container position:
    objContainer.style.left = (mouseX+scrollX)+"px";
    objContainer.style.top = (mouseY+scrollY)+"px";
    
    //read tooltip text:
    var strText=(objSource.attributes["tooltip_v1"])?objSource.attributes["tooltip_v1"].value:"";
    
    //verify we have something to display:
    if (strText.length == 0)
    return false;
    
    //set container text:
    objContainer.innerHTML = strText;
    
    //show container:
    setTimeout("_ShowTooltipContainer();", _tooltipPauseBeforeShow);
    
    //set timer if needed:
    if (_tooltipDelay > 0)
    setTimeout("HideToolTip();", _tooltipDelay*1000);
    
    return true;
    }
    
    
    function HideToolTip(event)
    {
    //get container:
    var objContainer=document.getElementById(_tooltipContainerName);
    if (objContainer)
    {
    objContainer.style.display = "none";
    }
    }
    
    function _ShowTooltipContainer()
    {
    //get container:
    var objContainer=document.getElementById(_tooltipContainerName);
    
    if (objContainer)
    {
    objContainer.style.display = "block";
    }
    }
    </script>
    </head>
    <body>
    <span tooltip_v1="hello i'm the tooltip.
    I can be some lines.">some text goes here.</span>
    
    <span tooltip_v1="and I am another tooltip">just another text.</span>
    </body>
    </html>
    il codice soprastante non è mio eh :P
    pero se provo a "copiare" la parte che legge il tag non ufficiale non va cmq... mentre sto coso va!

    sigh!


    helpppp!

  4. #4
    ma proprio nessuno è in grado di aiutarmi???

    così tanta gente che frequenta il forum e nessuno con la competenza necessaria??? :_(

  5. #5
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087
    Originariamente inviato da ylithian
    ma proprio nessuno è in grado di aiutarmi???
    non è che nessuno non sia in grado di aiutarti ... ed è proprio questo il punto! é che un aiuto presuppone che l'altro sia in grado di cogliere; nel caso diverso significa fargli il lavoro.
    Originariamente inviato da ylithian così tanta gente che frequenta il forum e nessuno con la competenza necessaria???
    qui, chi sa, non ha bisogno di dimostrare niente a nessuno.
    Allora, proprio per aiutarti, studiati questo:
    http://pro.html.it/articoli/id_458/idcat_11/pro.html
    + tutto ciò che riguarda ciò che ti serve. Se poi qualcosa non è chiara, dopo averci sbattuto la testa, chiedi, saprai essere chiaro e circostanziato nelle domande, e sarai aiutato
    ciao

  6. #6
    non è che nessuno non sia in grado di aiutarti ... ed è proprio questo il punto! é che un aiuto presuppone che l'altro sia in grado di cogliere; nel caso diverso significa fargli il lavoro.
    Non ho colto? cosa non ho colto scusa????
    hai detto una cosa e se guardi e provi la pagina che ho messo come (CODE) vedrai che usa un custom attribute (tooltip_v) e va sia su IE che FF e dato che personalmente non mi frega assolutamente niente dei tooltip in se, ma di poter accedere a dei custom attribute!

    ho una funzione javascript che mi permette di aggiungere o togliere frammenti di albero (quindi parti di un dato form) premendo il pulsantino add o remove.
    Ciò che voglio fare è gestire un contatore che mi permetta di non rimuovere tali elementi se sono gia nel numero minino e mi permetta anche di non aggiungerne se ho raggiunto il numero massimo.
    E non potendo sapere a priori come è formato il form, visto che lo genero con un XSLT a partire da uno schema e volendo supportare bene minOccur e maxOccur ho pensato che utilizzando un contatore su di un custom attribute la cosa potesse funzionare, tanto i browser li ignorano quindi non danno certo fastidio...

    tu hai detto che non vengono decodificati, ma come puoi leggere nel codice che ho gia riportato:
    [CODE]
    <span tooltip_v1="hello i'm the tooltip.
    I can be some lines.">some text goes here.</span>

    {/CODE]

    Non mi risulta che esista tooltip_v1 come attributo di span, eppure sia in FF che in IE quella paginetta va alla meraviglia.

    ho provato a usare quella tecnica con il miei form (che utilizzano dei div), ma non va... legge, chiaramente, gli style, ma non il mio count...

    Quindi mi pare che sia tu a non avere capito...


    qui, chi sa, non ha bisogno di dimostrare niente a nessuno.
    Allora, proprio per aiutarti, studiati questo:
    http://pro.html.it/articoli/id_458/idcat_11/pro.html
    + tutto ciò che riguarda ciò che ti serve. Se poi qualcosa non è chiara, dopo averci sbattuto la testa, chiedi, saprai essere chiaro e circostanziato nelle domande, e sarai aiutato
    ciao
    1) non ho chiesto dimostrazioni, solo se qualcuno sapeva come risolvere il mio problema, visto che non ci sono riuscita anche dopo essermi documentata a dovere, ma in internet si trovano molti tutorial, snippet e altre cose utili, ma per cose abbastanza banali.
    2) non me ne faccio nulla dei css ne di fare dei tooltip (come ho detto pure sopra)
    3) mi sembra di essere stata più che chiara e dalla prima risposta data mi pareva si fosse capito.


    Ora dovrebbe essere tutto più chiaro, se così non fosse posso spiegare anche meglio, ma riassumendo:

    pare siano utilizzabili i custom attribute come contatore, sapete farlo? se sì, potrei sapere come? grazie.

    avete un'idea migliore per poter supportare la funzionalità che devo dare? benissimo! ditemi come fareste, io ho visto solo la possibilità dei custom (anche perchè è una funzionalità che mi è stato richiesto fare in javascript)
    grazie ancora.

    Yli

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.