Pulsanti e Formattazione del testo

Scar991

Utente Attivo
30 Apr 2012
167
0
0
Salve a tutti!
Ho inserito in un form guestbook dei pulsanti che mi diano i tag html per il grassetto, il corsivo e il sottolineato...
Qui sotto i codici:

Codice:
<script>
function bold(){
  var b=prompt("Inserisci il testo","");
  if (b!=null) {
	document.getElementById("message").value = document.getElementById("message").value + " <strong>" +b+ "</strong>";
  } else {
	var N=alert("Non hai inserito nessun testo!");
  }
}
</script>

<script>
function italics() {
	var it=prompt("Inserisci il testo","");
	if (it!=null){
		document.getElementById("message").value = document.getElementById("message").value + " <i>" +it+ "</i>";
	} else {
		var N=alert("Non hai inserito nessun testo!");
	}
}
</script>

<script>
function underline() {
	var ul=prompt("Inserisci il testo","");
	if (ul!=null){
		document.getElementById("message").value = document.getElementById("message").value + " <u>" +ul+ "</u>";
	} else {
		var N=alert("Non hai inserito nessun testo!");
	}
}
</script>
Mi chiedevo come mai usando il medesimo codice per i link (inserendo quindi <a href="">ciao</a>) il pulsante non mi funziona.

Inoltre vorrei sapere, come faccio a fargli dare uno spazio "automatico"? come potete vedere l'ho inserito prima del tag (es. "[ ]<u>" +ul+ "</u>"), ma se si vuole inserire un tag come prima parola come faccio a non fargli dare lo spazio? Devo inserire una sorta di "if document.getElementById è vuoto allora inizia senza spazio altrimenti no"?
 

cavaliere123

Utente Attivo
31 Lug 2012
415
0
0
Ciao per il link io faccio cosi <a href=#>ciao</a> ma scusami però manca a cosa riferisci il link....

ad esempio dovrebbe essere cosi :

HTML:
<a  class="inizio" href="javascript:void(0)" onClick="function('')"  title="cominc">Ciao</a>

//come vedi puoi usare anche il : href="javascript:void(0)" che è stessa cosa...
 

cavaliere123

Utente Attivo
31 Lug 2012
415
0
0
per la seconda domanda... sincero non l'ho compresa bene... meglio aspettare come li chiamo io i sapienti che sapranno aiutarti .... io non sono cosi esperto... pardon :)
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Salve a tutti!
Ho inserito in un form guestbook dei pulsanti che mi diano i tag html per il grassetto, il corsivo e il sottolineato...
Qui sotto i codici:

Codice:
<script>
function bold(){
  var b=prompt("Inserisci il testo","");
  if (b!=null) {
	document.getElementById("message").value = document.getElementById("message").value + " <strong>" +b+ "</strong>";
  } else {
	var N=alert("Non hai inserito nessun testo!");
  }
}
</script>

<script>
function italics() {
	var it=prompt("Inserisci il testo","");
	if (it!=null){
		document.getElementById("message").value = document.getElementById("message").value + " <i>" +it+ "</i>";
	} else {
		var N=alert("Non hai inserito nessun testo!");
	}
}
</script>

<script>
function underline() {
	var ul=prompt("Inserisci il testo","");
	if (ul!=null){
		document.getElementById("message").value = document.getElementById("message").value + " <u>" +ul+ "</u>";
	} else {
		var N=alert("Non hai inserito nessun testo!");
	}
}
</script>
Mi chiedevo come mai usando il medesimo codice per i link (inserendo quindi <a href="">ciao</a>) il pulsante non mi funziona.

Inoltre vorrei sapere, come faccio a fargli dare uno spazio "automatico"? come potete vedere l'ho inserito prima del tag (es. "[ ]<u>" +ul+ "</u>"), ma se si vuole inserire un tag come prima parola come faccio a non fargli dare lo spazio? Devo inserire una sorta di "if document.getElementById è vuoto allora inizia senza spazio altrimenti no"?

Ciao,

nel href metti il richiamo della funzione

per lo spazio, intendi uno spazio dopo(aver usato bold) <strong>testo</strong> da qui continua? e tag come primo carattere?

ES:

solo per bold

Codice:
<script>
function bold(){
  var b=prompt("Inserisci il testo","");
  if (b!=null) {
	document.getElementById("message").value = document.getElementById("message").value +"<strong>" +b+ "</strong>" + " ";
    message.focus();
  } else {
	var N=alert("Non hai inserito nessun testo!");
  }
}
</script>
LINK:

Codice:
<a href="javascript:void(0)" onclick="bold()">BOLD</a>

PS: non c'è bisogno di scrivere per ogni funzione <script>f()></script> <script>g()</script>

<script type="text/javascript">

tutte le funzioni

</script>


Valeria.
 

Scar991

Utente Attivo
30 Apr 2012
167
0
0
Mi spiego meglio :)
Quei codici fanno riferimento a dei bottoni! Mi serve inserire i link nella textarea, ossia fare in modo che diventino cliccabili, tramite codice html :)

Per quanto riguarda la prima richiesta:
Negli altri script, come avrai notato, il codice apre una finestra nella quale va inserito il testo, e poi pone i tag di apertura e chiusura del testo stesso.
Per quanto riguarda l'URL, io avevo scritto una cosa del tipo

HTML:
<script>
function idurl() {
	var reqind=prompt("Inserisci il l'indirizzo della pagina",""); //richiede l'URL

	if (reqind!=null) { //controlla se c'è l'inserimento

		var reqid=prompt("Inserisci il testo del link",""); //se c'è l'inserimento chiede il testo del link

		if (reqid!=null){ //se il testo è stato inserito, lo inserisce
			document.getElementById("message").value = document.getElementById("message").value + " <a href='" +reqind+ ">" +reqid+"</a>";

		} else {
			reqid=requind;
				document.getElementById("message").value = document.getElementById("message").value + " <a href='" +reqind+ ">" +reqid+"</a>";
		}

	} else {

		var N=alert("Non hai inserito nessun testo!");

	}

}
</script>
Ma non mi funzionava... Sapete dirmi il perché?

Per quanto riguarda la seconda richiesta

Avrete notato che, nella stringa di inserimento dei tag

Codice:
document.getElementById("message").value = document.getElementById("message").value + " <a href='" +reqind+ "'>" +reqid+"</a>";
dopo 'value + " ' e prima di '<a href=' ' c'è uno spazio. L'ho inserito perché altrimenti il testo "formattato" veniva inserito di seguito a quello della textarea

Esempio: ciao<b>come</b> stai darebbe come risultato ciaocome stai e non ciao come stai.

Mi chiedevo: è possibile fare in modo che lo script riconosca se sto inserendo la prima parola della textarea (quindi se la textarea è vuota) e togliere quello spazio?
Magari con un

Codice:
if (document.getElementById("message").value = ""){
document.getElementById("message").value = document.getElementById("message").value + "<a href='" +reqind+ ">" +reqid+"</a>";
} else {
document.getElementById("message").value = document.getElementById("message").value + " <a href='" +reqind+ ">" +reqid+"</a>";
}
potrebbe funzionare?

PS: grazie per l'accortezza relativa all'unico "script" Vale :)
 
Ultima modifica:

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Ciao,

spazi a parte sono altra cosa,

per la URL

una cosa tipo questa nella textarea

Codice:
<a href='http://www.pippo.it'>Pippo.it</a>

Valeria.
 

Scar991

Utente Attivo
30 Apr 2012
167
0
0
Ok ora lo script che ho postato prima funziona, evidentemente in quello di prima mi era sfuggito qualche errore.

Problema degli spazi, qualcuno sa aiutarmi?