Page 1 sur 1

tentative de BBCode

Posté : 08 avr. 2007, 12:07
par katagoto
Bonjour a tous et toutes,
Toujours dans l'optique d'un BBCode j'ai donc "réaliser" un moyen d'introduir par bouton mes balises, et une me pose problème :
<?php
session_start();
?>
<html>
<head>
<title>Banque de donnée cryptographique</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" media="screen" type="text/css" title="Essai" href="essai.css" />
<script language="Javascript">
function postcolor(selec)
{
	if (isMozilla) 
	{
	// Si on est sur Mozilla

		oField = document.forms['topost'].elements['message'];

		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 );

	//	alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");
			
		oField.value = objectValueDeb + "[" + selec + "]" + objectSelected + "[/couleur]" + objectValueFin;
		oField.selectionStart = strlen(objectValueDeb);
		oField.selectionEnd = strlen(objectValueDeb + "[" + selec + "]" + objectSelected + "[/couleur]");
		oField.focus();
		oField.setSelectionRange(
			objectValueDeb.length + selec.length + 2,
			objectValueDeb.length + selec.length + 2);
	}
	else
	{
	// Si on est sur IE
		
		oField = document.forms['topost'].elements['message'];
		var str = document.selection.createRange().text;

		if (str.length>0)
		{
		// Si on a selectionné du texte
			var sel = document.selection.createRange();
			sel.text = "[" + selec + "]" + str + "[/couleur]";
			sel.collapse();
			sel.select();
		}
		else
		{
			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 + "][/couleur]" + 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.toposts['topost'].elements['message'], pos);
			var r = oField.createTextRange();
			r.moveStart('character', pos);
			r.collapse();
			r.select();

		}
	}
}

</script>
<script type="text/javascript">
bloc = true;
function colorbouton(couleur)
{
	if(bloc)
		document.topost.colorbouton.value = couleur;
		document.topost.colorbouton.style = "width:50px-color:"+couleur;
		document.topost.colorbouton.onclick = "postcolor("+couleur+")";
}
function palette() { 
document.write("<TABLE border='0' cellpadding='0' cellspacing='0' ><TR>"); 
var h=new Array('00','33','66','99','CC','FF'); 
var col=""; 
for(var i=0;i<6;i++) { 
for(var j=0;j<6;j++) { 
for(var k=0;k<6;k++) { 
col="#"+h[i]+h[j]+h[k]; 
document.write("<TD width='10' height='10' bgcolor='"+col+"' onMouseOver=\"colorbouton('"+col+"')\" onClick=\"if(bloc) { bloc = false; } else { bloc = true; }\"></TD>"); 
} 
} 
document.write("</tr>"); 
} 
document.write("</TABLE>"); 
} 
</SCRIPT> 
</head>
<body>
<p><form id="topost" name ="topost" action="fiches.php" method="post">
<center><SCRIPT language="JavaScript"> 
palette(); 
</SCRIPT>
Cliquez sur la couleur de votre choix pour désactiver/activer le défilement.<br />
<input name="colorbouton" id="colorbouton" type="button" value="couleur" style="" onclick=""><br>
</p><p><textarea name="message" wrap="virtual" cols="90" rows="5"></textarea></p></form>
Voilà donc mon but est que lors de la sélection de la couleur, ce bouton prennent le nom (cette option marche), prenne la couleur (celle la ne marche pas), et onclik prenne la valeur de la couleur sélectionnée (celle la la non plus ne marche pas...)

Voilà je pense que je ne suis pas loin du dénoument (bien que je soit un novice en ce domaine), un petit coup de pouce serais le bienvenu, d'avance merci ^^