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

    Problema Editor Form con Firefox

    Ciao a tutti stò usando uno script preso da html.it per la realizzazione di un piccolo editor per il form, sotto IE mi funziona tutto correttamente , con Firefox, quando va a inserire i campi tipo , praticamente il cursore non compare più nel form quindi bisogna cliccare con il mouse al centro per poter scrivere, mentre in IE funziona tutto in automatico, il cursore compare dove deve stare, vi posto il codice IE poi quello Firefox:

    codice:
    	// Se Il browser è InternetExplorer
    		
    		oField = document.forms['news'].elements['newst'];
    		var str = document.selection.createRange().text;
    
    		if (str.length>0)
    		{
    			// Se si è selezionato del testo 
    			
    			var sel = document.selection.createRange();
    			sel.text = "<" + selec + ">" + str + "</" + selec + ">";
    			sel.collapse();
    			sel.select();
    		}
    		else
    		{
    			// Se non si è selezionato alcun testo
    						
    			oField.focus(oField.caretPos);
    				//alert(oField.caretPos+"\n"+oField.value.length+"\n")
    			oField.focus(oField.value.length);
    			oField.caretPos = document.selection.createRange().duplicate();
    			
    			var bidon = "%~%";
    			var orig = oField.value;
    			oField.caretPos.text = bidon;
    			var i = oField.value.search(bidon);
    			oField.value = orig.substr(0,i) + "<" + selec + "></" + selec + ">" + orig.substr(i, oField.value.length);
    			var r = 0;
    			for(n = 0; n < i; n++)
    			{if(regexp.test(oField.value.substr(n,2)) == true){r++;}};
    			pos = i + 2 + selec.length - r;
    				//placer(document.forms['news'].elements['newst'], pos);
    			var r = oField.createTextRange();
    			r.moveStart('character', pos);
    			r.collapse();
    			r.select();
    
    		}
    Il codice Firefox è :

    codice:
    	// Se il browser è Mozilla
    
    		oField = document.forms['news'].elements['newst'];
    
    		objectValue = oField.value;
    
    		deb = oField.selectionStart;
    		fin = oField.selectionEnd;
    
    		objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
    		objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
    		objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );
    
    			
    		oField.value = objectValueDeb + "<" + selec + ">" + objectSelected + "</" + selec + ">" + objectValueFin;
    		oField.selectionStart = strlen(objectValueDeb);
    		oField.selectionEnd = strlen(objectValueDeb + "<" + selec + ">" + objectSelected + "</" + selec + ">");
    		oField.focus();
    		oField.setSelectionRange(
    			objectValueDeb.length + selec.length + 2,
    			objectValueDeb.length + selec.length + 2);
    	}
    Grazie per l'aiuto!

  2. #2
    Oh cavolo ho sbagliato sezione dovevo andare in Javascript....
    SE qualche moderatore mi spostasse sarebbe bello :P

  3. #3
    Utente di HTML.it L'avatar di Cerebro
    Registrato dal
    Jan 2005
    Messaggi
    193
    TinyMCE e vivi felice.

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.