Foros del Web » Programando para Internet » Javascript »

Eventos controlados desde un objeto

Estas en el tema de Eventos controlados desde un objeto en el foro de Javascript en Foros del Web. Tengo el siguiente objeto en javascript : Código: function oEditor (aNombreEditor) { this.Nombre=aNombreEditor this.Navegador=new oNavegador(); this.Contenido=""; this.ContenidoHTML=""; this.LineaActual=0; this.ColumnaActual=0; this.SelectorActual=""; //Métodos this.OnTecla = OnTecla; this.ActivarEditor= ...
  #1 (permalink)  
Antiguo 11/09/2007, 10:42
 
Fecha de Ingreso: noviembre-2004
Mensajes: 92
Antigüedad: 19 años, 5 meses
Puntos: 0
Eventos controlados desde un objeto

Tengo el siguiente objeto en javascript:

Código:
function oEditor (aNombreEditor) {
	
  this.Nombre=aNombreEditor
  this.Navegador=new oNavegador();
  this.Contenido="";
  this.ContenidoHTML="";
  this.LineaActual=0;
  this.ColumnaActual=0;
  this.SelectorActual="";
	
  //Métodos
  this.OnTecla = OnTecla;
  this.ActivarEditor= ActivarEditor;

  //Ver si es editable
  if (document.getElementById && document.designMode && !this.Navegador.esSafari && !this.Navegador.esKonqueror) {
    this.esEditable= true;
  } else {
		this.esEditable= false;
	}
	
	//Incluir iframe con el Editor
  if(this.esEditable){			
    document.writeln('<div id="iVerLineas" style="float:left;"></div>');
    document.writeln('<iframe id="' + aNombreEditor + '"></iframe>');
  }else{
	 //No funciona el aplicativo. LLamar a página de error.
  }
El cual creo del siguiente modo:

Código:
...
<body>
<script language= "JavaScript" type= "text/javascript" src= "Aplicacion.js" ></script>
<script language= "JavaScript" type= "text/javascript" >
    Ed= new oEditor("iEditor");
    Ed.ActivarEditor();
</script>
</body>
...
En el método ActivarEditor pongo el iframe en modo edición, y le intento asignar un evento para cuando se pulsa una tecla.

Código:
function ActivarEditor() {
  //Pasar a modo diseño 
  if (this.Navegador.esIE) {
    Ed = document.getElementById(this.Nombre).contentWindow.document;
    Ed.write('<html><head></head><body></body></html>');				
    Ed.designMode = "on" ;  
    Ed.attachEvent('onkeyup', this.OnTecla);	
  }
  else {
    Ed = document.getElementById(this.Nombre).contentDocument;
    Ed.write('<html><head></head><body></body></html>');				
    Ed.designMode = "on" ;	
    Ed.addEventListener("keyup", this.OnTecla, true);
  }	 	
}

function OnTecla() {
...  
}

...
El problema lo tengo en el 'this.OnTecla' ya que parece que el this no se refiere al objeto sino al contentdocument del iframe (visto desde Firefox).

¿Como puedo hacer para que sea el objeto el que controle los eventos que se produzcan en el iframe?.

Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:30.