09/03/2008, 11:53
|
| | | Fecha de Ingreso: diciembre-2006 Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 18 años 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 |