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

    forzare inserimento br in div contenteditable

    Ciao a tutti,
    qualcuno conosce un metodo cross browser per forzare l'inserimento di un
    al click su tasto enter dentro un div editable ?
    Il cursore dovrebbe anche posizionarsi dopo il tag appena inserito.
    In pratica rendere cross browser il funzionamento di default di mozilla firefox.
    Ad usare jquery prevent default su enter key ci sono arrivato ma poi?
    è la benvenuta qualsiasi idea....

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2010
    residenza
    Pianeta Terra
    Messaggi
    1,614
    Potresti provare qualcosa del genere:

    codice:
    $(function(){
    $("body")
    .on("keyup mouseup",'#tuoDiv', function(){
      if (!this.lastChild || this.lastChild.nodeName.toLowerCase() != "br") {
        this.appendChild(document.createChild("br"));
      }
    })
    .on("keypress",''#tuoDiv", function(e){
      if (e.which == 13) {
        if (window.getSelection) {
          var selection = window.getSelection(),
              range = selection.getRangeAt(0),
              br = document.createElement("br");
          range.deleteContents();
          range.insertNode(br);
          range.setStartAfter(br);
          range.setEndAfter(br);
          range.collapse(false);
          selection.removeAllRanges();
          selection.addRange(range);
          return false;
        }
      }
    });
    });
    Per una bella risata vai QUI

  3. #3
    grazie per lo script... solo che nn capisco perchè ma non mi da nessuna risposta.
    è una bozza oppure hai testato che funziona?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2010
    residenza
    Pianeta Terra
    Messaggi
    1,614
    E' un suggerimento; dovresti integrarlo/ modificarlo in base al tuo codice. Non l'ho testato.

    Ma qualche risposta la dovrebbe pure dare.
    Hai guardato in firebug o simile?

    Per una bella risata vai QUI

  5. #5
    niente nn riesco a farlo fungere...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2010
    residenza
    Pianeta Terra
    Messaggi
    1,614
    Firebug che dice?

    Se puoi, metteresti un link alla pagina/ script in questione?
    Per una bella risata vai QUI

  7. #7
    Allora, aggiornamento della situazione... adesso lo script funziona! ero io che avevo una

    versione obsoleta di jquery

    L'unica cosa che non funziona è la prima parte, ovvero:

    if (!this.lastChild || this.lastChild.nodeName.toLowerCase() != "br") {
    this.appendChild(document.createChild("br"));
    }

    non mi crea nessun br alla fine del test. Ho fatto diversi test ma niente.

    adesso quella parte è importante perchè regolarizza il comportamento del div editable nei vari

    browser... come posso fare?

    Perdonate la mia profonda ignoranza

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2010
    residenza
    Pianeta Terra
    Messaggi
    1,614
    Con quale Browser appare il problema?

    E, a parte la fine del testo, i div te li inserisce su tutti i browser?
    Per una bella risata vai QUI

  9. #9
    Il problema me lo da su praticamente tutti i browser:chrome, firefox, ie e opera.

    div non ce ne sono... semplicemente al click su enter viene prevenuto il comportamento

    normale del tasto, viene inserito il br e messo il cursore dopo di esso... e funziona bene in tutti

    i browser se nn fosse che chrome ha bisogno di 2 br per andare a capo.

    Proprio per questo era necessario il primo pezzo dello script che dovrebbe sempre settare un br

    alla fine del testo.

    E' strano che non funzioni... c'è qualche errore sintattico in questo parte?

    if (!this.lastChild || this.lastChild.nodeName.toLowerCase() != "br") {

    this.appendChild(document.createChild("br"));

    }

  10. #10
    in pratica ho capito che il malfunzionamento è su questa linea

    --> this.appendChild(document.createChild("br"));

    in pratica la parte che deve aggiungere il br

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.