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

    Problema script resize textarea

    Salve, spiego subito il mio problema.. Sul mio forum (piattaforma forumcommunity) sto utilizzando da un po' di tempo una shoutbox, uno script realizzato da un utente. Il problema sta nel fatto che di base la textarea è molto bassa, permette la lettura di una sola riga di testo anche se i caratteri inseribili sono 500, e dato il rifiuto di implementare una funzione apposita nello script da parte del creatore, devo fare da me... Ci sono riuscito fino a un certo punto, scrivendo questo (sono partito da uno script che avevo trovato online e ho cercato di adattarlo alle mie esigenze):
    codice:
    window.onload = function() { 
     var t = document.getElementById("s_msg"); 
     var offset = !window.opera ? (t.offsetHeight - t.clientHeight) : (t.offsetHeight + parseInt(window.getComputedStyle(t, null).getPropertyValue('border-top-width'))) ; 
     var padding = 4; 
     var border = 2; 
     offset2 = (offset - padding) - border; 
     
     var resize = function(t) { 
     t.style.cssText = 'height: ; overflow: auto; resize: none;'; 
     t.style.height = (t.scrollHeight + offset2 ) + 'px'; 
     } 
     
     t.addEventListener && t.addEventListener('input', function(event) { 
     resize(t); 
     }); 
     
     t['attachEvent'] && t.attachEvent('onkeyup', function() { 
     resize(t); 
     }); 
     
        var s = document.getElementById("s_submit"); 
    }
    Ora ciò che mi rimane da fare, è fare in modo che la textarea ritorni all'altezza base quando clicco sul pulsante invia e quando premo invio per inviare il messaggio.. Non è un qualcosa di complicato, ma non posso in alcun modo toccare il codice della shoutbox, quindi non posso aggiungere una mia funzione all'onclick nell'html ne tanto meno so come identificare la pressione del tasto invio xD Qualcuno sa come aiutarmi? Ringrazio in anticipo chiunque volesse farlo

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    ma non posso in alcun modo toccare il codice della shoutbox, quindi non posso aggiungere una mia funzione all'onclick
    Pur non sapendo il motivo, ritengo molto (in percentuale 99%) improbabile una soluzione.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Originariamente inviato da cavicchiandrea
    Pur non sapendo il motivo, ritengo molto (in percentuale 99%) improbabile una soluzione.
    Non si potrebbe ad esempio fare che se la textarea non contiene caratteri diciamo nell'arco di un secondo, l'altezza viene reimpostata? In questo modo, se i dati sono stati mandati e la textarea svuotata, viene reimpostata l'altezza base, altrimenti se è stata svuotata dall'utente il resize è già stato effettuato, mi sbaglio? così non dovrei usare l'onclick...

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da Devil402
    Non si potrebbe ad esempio fare che se la textarea non contiene caratteri diciamo nell'arco di un secondo, l'altezza viene reimpostata? In questo modo, se i dati sono stati mandati e la textarea svuotata, viene reimpostata l'altezza base, altrimenti se è stata svuotata dall'utente il resize è già stato effettuato, mi sbaglio? così non dovrei usare l'onclick...
    In teoria potrebbe funzionare, in pratica non potendo modificare/manipolare shoutbox la teoria non è più applicabile, per intenderci su tutto quello che non hai poteri amministrativi non lo puoi modificare o forzare
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Originariamente inviato da cavicchiandrea
    In teoria potrebbe funzionare, in pratica non potendo modificare/manipolare shoutbox la teoria non è più applicabile, per intenderci su tutto quello che non hai poteri amministrativi non lo puoi modificare o forzare
    La shoutbox è uno script esterno che va a creare una sorta di chat nella home del forum... non posso toccare quello script, però forse posso agire in quel modo.. se serve posso linkare il sito dove è presente lo script, forse la mia idea è applicabile, dato che di base quello script svuota la textarea e mi basterebbe controllare se è vuota dopo un certo tempo,no?

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Se pensi possa essere utile metti pure il link, di certo non potrò dedicarci del tempo perché dubito fortemente che funzioni.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Secondo me non è così difficile

    codice:
    function autoGrow (oEvent) {
    	this.style[(oEvent || /* IE... */ window.event).keyCode === 13 || this.scrollHeight < this.clientHeight ? "removeProperty" : "setProperty"]("height", this.scrollHeight + "px");
    }
    
    onload = function () {
    	var oTA = document.getElementById("s_msg");
    	oTA.addEventListener ? oTA.addEventListener("keyup", autoGrow, false) : oTA.attachEvent ? oTA.attachEvent("onkeyup", autoGrow) : (oTA.onkeyup = autoGrow);
    	autoGrow.call(oTA);
    }
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

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.