Foros del Web » Programando para Internet » Javascript »

Script funciona en FIREFOX, OPERA, pero no en IE

Estas en el tema de Script funciona en FIREFOX, OPERA, pero no en IE en el foro de Javascript en Foros del Web. Hola, tengo un script para poner caritas en input text pero no me funciona en IE. Pueden verlo en http://hgp147.110mb.com/caritas.htm Gracias por su ayuda....
  #1 (permalink)  
Antiguo 08/03/2008, 17:55
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 4 meses
Puntos: 36
Exclamación Script funciona en FIREFOX, OPERA, pero no en IE

Hola, tengo un script para poner caritas en input text pero no me funciona en IE. Pueden verlo en http://hgp147.110mb.com/caritas.htm

Gracias por su ayuda.
  #2 (permalink)  
Antiguo 09/03/2008, 00:57
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Script funciona en FIREFOX, OPERA, pero no en IE

Hola:

Sí, con explorer es distinto... en las FAQs creo que hay algunos mensajes que lo explican bien; también puedes usar el script de esta página: Editor de texto

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 09/03/2008, 10:00
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 4 meses
Puntos: 36
Re: Script funciona en FIREFOX, OPERA, pero no en IE

Gracias caricatos, voy a ver si lo puedo modificar para solo los smyles.
  #4 (permalink)  
Antiguo 09/03/2008, 11:53
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 4 meses
Puntos: 36
Re: Script funciona en FIREFOX, OPERA, pero no en IE

Ya lo modique. Te fijas si esta bien caricatos? Gracias.
Probado en FIREFOX 2, IE 6 Y OPERA 9, funciona bien en los tres. Podés verlo aquí http://hgp147.110mb.com/index.htm en funcionamiento.
Quedo así:

Archivo index.htm

Código HTML:
<!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>

<script type="text/javascript" src="editor_002.js"></script>
<script type="text/javascript" src="personal.js"></script>
				
</head>

<body onload="elEditor = ini_editor(document.getElementsByTagName('textarea')[0]);">


<form action="">

<textarea name="texto" rows="10" cols="80" id="texto" onfocus="elEditor = ini_editor(this)" onchange="prever()"></textarea>

<fieldset>

			
<img src="00.gif" onclick='ponerEmoticon("[:)]")' style="cursor: pointer;">
<img src="01.gif" onclick='ponerEmoticon("[:(]")' style="cursor: pointer;">
<img src="02.gif" onclick='ponerEmoticon("[:x]")' style="cursor: pointer;">
<img src="03.gif" onclick='ponerEmoticon("[BIEN]")' style="cursor: pointer;">
<img src="04.gif" onclick='ponerEmoticon("[MAL]")' style="cursor: pointer;">
<img src="05.gif" onclick='ponerEmoticon("[SI]")' style="cursor: pointer;">
<img src="06.gif" onclick='ponerEmoticon("[NO]")' style="cursor: pointer;">
<img src="07.gif" onclick='ponerEmoticon("[APLAUSOS]")' style="cursor: pointer;">
<img src="08.gif" onclick='ponerEmoticon("[MEJORABLE]")' style="cursor: pointer;">
<img src="09.gif" onclick='ponerEmoticon("[¡A VER!]")' style="cursor: pointer;">
<img src="10.gif" onclick='ponerEmoticon("[¡DÉJAME PENSAR!]")' style="cursor: pointer;">
<img src="11.gif" onclick='ponerEmoticon("[FLIPE]")' style="cursor: pointer;">
<img src="12.gif" onclick='ponerEmoticon("[¡SIN PALABRAS!]")' style="cursor: pointer;">

</fieldset>

</form>

</body>
</html> 
Archivo editor_002.js

Código:
var _navegador = navigator.userAgent;
var ie = /msi/i.test(_navegador);
var op = /opera/i.test(_navegador);
var mo = /gecko/i.test(_navegador);
var otro = !(ie || mo);
var _insertor, _insertar, _formulario, _texto, _lector = "";

function datos_ie() {
	_texto = document.selection.createRange().text;
	if (_formulario.createTextRange)
		_formulario.posi = document.selection.createRange().duplicate();
	return true;
}

function captura_ie()	{
	return _texto;
}

function captura_mo() {
	with (_formulario) return value.substring(selectionStart, selectionEnd);
}

function captura_otro()	{
	return "";
}

function poner_mo(f, x)	{//alert(x);
	var _ini = f.selectionStart;
	var _fin = f.selectionEnd;
	var inicio = f.value.substr(0, _ini);
	var fin = f.value.substr(_fin, f.value.length);

	f.value = inicio + x + fin;
	if (_ini == _fin)	{
		f.selectionStart = inicio.length + x.length;
		f.selectionEnd = f.selectionStart;
	}
	else	{
		f.selectionStart = inicio.length;
		f.selectionEnd = inicio.length + x.length;
	}
	f.focus();
}

function poner_otro(f, x)	{// opera u otros navegadores desconocidos
	f.value += x;//alert(x);
	f.focus();
}

function poner_ie(f, x)	{
	f.focus();
	if (f.createTextRange)	{// && f.posi)	{
		if (!f.posi)	datos_ie();
		with(f)	{
			var actuar = (posi.text == "");
			posi.text = x;
			if (!actuar)
				posi.moveStart("character", -x.length);
			posi.select();
		}
	}
}

function ini_editor(formu)	{
	_formulario = formu;
	
	if (op || mo)	{//alert("mozilla u opera");
		_insertar = function(f, x) {poner_mo(f, x);};
		_lector = captura_mo;
	}

else	if (otro)	{//alert("otro");
		_insertar = function(f, x) {poner_otro(f, x);};
		_lector = captura_otro;
	}

else	if (ie)	{
		_formulario.onchange = datos_ie;
		_formulario.onclick  = datos_ie;
		_insertar = function(f, x) {poner_ie(f, x);};
		_lector = captura_ie;
	}
	return formu;
}

Archivo personal.js

Código:
var elEditor;	// declaración necesaria para el funcionamiento de la librería editor.js

function ponerEmoticon(cual)	{
	_insertar(elEditor, cual);
}

Última edición por hgp147; 09/03/2008 a las 12:00
  #5 (permalink)  
Antiguo 14/03/2008, 14:26
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 4 meses
Puntos: 36
Re: Script funciona en FIREFOX, OPERA, pero no en IE

Hola caricatos, detecte un error en el editor de texto de tu web. El problema es que cuando te aparece el scrollbar lateral del textarea, y estás en la parte de más abajo del textarea, al hacer click en el emoticon se agrega correctamente en su posición, pero el problema es que el scrollbar vuelve hacia arriba de todo.
Espero haberme explicado bien. Lo probe en FIREFOX2
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 02:24.