Lo que quiero es saber si hay alguna forma de pasar parámetros a una función f que se la asigno al evento onclick de la siguiente forma button.onclick=f; ya que lo que intenté fué accesar desde dentro de f una variable definida fuera, pero me surge un erro, como pueden apreciar:
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Editor de texto</title>
<meta name="GENERATOR" content="Quanta Plus">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
div{
text-align:left;
margin:auto;
width:95%;
height:200px;
border:2px silver solid;
}
</style>
<script language="JavaScript" type="text/javascript">
function createControls( editableDiv ){
//Crea un div con controles para el div editable exactamente después del div Editable
//Cada boton tiene un id conforma ("editableDivControl"+[tag del elemento HTML correspondiente al control]) ej: "editableDivControlh1"
//editableDivControlB
function onclickEditableDivControl( ){
//Modifica el objeto window.editableDivNamespace.action asignándole la acción correspondiente al boton en cuestión, y deja dicho botón activado o desactivado según sea necesario;
//newButton definida fuera de la función
var button=newButton;
//Modifico el objeto y obtengo la propiedad que contenía antes
if( !window.editableDivNamespace ){
window.editableDivNamespace=new Object;
window.editableDivNamespace.action=button.value;
//Estilo de un boton presionado
button.style.background="#888";
}else if( !window.editableDivNamespace.action ){
window.editableDivNamespace.action=button.value;
//Estilo de un boton presionado
button.style.background="#888";
}else if( window.editableDivNamespace.action==button.value ){
releasedButton=window.editableDivNamespace.action;
window.editableDivNamespace.action="";
//Estilo de un boton libre
button.style.background="#ccc";
}else{
releasedButton=window.editableDivNamespace.action;
window.editableDivNamespace.action=button.value;
//Estilo de un boton presionado
button.style.background="#888";
//Estilo de un boton libre
document.getElementById( "editableDivControl"+window.editableDivNamespace.action ).style.background="#ccc";
}
}
//matriz que contien los elementos correspondientes a los botones, para ind par ind=(Nombre del botón), ind+1=(value del botón)
var buttonsElements=new Array( "Negrita","b" , "Itálica","i" , "Emfásis" , "em" );
//Elemento que contendrá los botones de control
var controlsDiv=document.createElement( "div" );
//Recorro la matriz buttonsElements creando botones y agregandolos al div controlsDiv
for( ind=0; ind<buttonsElements.length ; ind+=2 ){
var newButton=document.createElement( "button" );
newButton.appendChild( document.createTextNode( buttonsElements[ind] ) );
newButton.value=buttonsElements[ind+1];
newButton.id="editableDivControl"+buttonsElements[ind+1];
newButton.onclick=onclickEditableDivControl;
controlsDiv.appendChild( newButton );
}
document.body.appendChild( controlsDiv );
}
</script>
</head>
<body onload="createControls( document.getElementById( 'editor' ) )">
<div id="editor" ></div>
</body>
</html>