begin process at 2012 02 11 21:40:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Scripting

 > 

Javascript

 > 

ajout a la position du curseur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ajout a la position du curseur

mardi 28 avril 2009 à 11:48:12 | ajout a la position du curseur

pigeon11

Bonjour,

J'ai copié le code suivant dans un fichier .html,  pour ajouter du texte à la position du curseur dans un textarea mais ça ne marche pas.

Je n'ai aucune erreur, mais quand je clique sur le bouton ajouter aucun texte ne s'ajoute dans le textearea.

 

<HTML>
<HEAD>
<TITLE>Insert</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function storeCaret (textEl)
{
if (textEl.createTextRange)
textEl.caretPos = document.selection.createRange().duplicate();
}
function insertAtCaret (textEl, text)
{
if (textEl.createTextRange && textEl.caretPos)
{
var caretPos = textEl.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
}
else
textEl.value  = text;
}
</SCRIPT>
</HEAD>
<BODY>
<FORM>
<textarea rows="5" name="zonetexte" cols="20"ONSELECT="storeCaret(this);"ONCLICK="storeCaret(this);"ONKEYUP="storeCaret(this);"> C'est le début du texte.</textarea>
<INPUT TYPE="button" STYLE="font-family:courier;" VALUE="Ajouter"
ONCLICK="insertAtCaret(this.form.zonetexte,'LE TEXTE');">
</FORM>
</BODY>
</HTML>


Merci pour vos aides

mercredi 29 avril 2009 à 23:10:56 | Re : ajout a la position du curseur

ggtry

Bonsoir,

Tu aurais dû poster ta question dans le forum javascript : c'est plus adapté.
Je ne sais pas pourquoi rien ne se passe : mais je ne crois pas que createtextrange puisse fonctionner sous firefox.
Si ton problème se pose sous IE, donnes-tu le js que tu utilises, ou celui de ta source ? Parce que, sauf si le js est désactivé chez toi, le code marche bien sous IE 7. Ou alors, si tu l'as adapté, c'est ton adaptation qui peut poser problème (nb. en général, pour faire un débogage javascript, y compris sous visual studio, tu dois activer le débogage des scripts dans Internet Explorer...)
Une suggestion de code, en repartant du tiens, pour le js, serait (en reprenant ici un code trouvé sur le net, pour firefox, que j'adapte seulement, et qui devrait marcher tant pour IE que pour firefox) :

var toto;
var begin;
var end;
function storeCaret (textEl)
{
if (textEl.caretPos != "undefined" && textEl.createTextRange)
{
textEl.caretPos = document.selection.createRange().duplicate();
toto=textEl.caretPos;
}
else
 {
  begin = textEl.value.substr(0, textEl.selectionStart);
  end = textEl.value.substr(textEl.selectionEnd);  
  toto = begin + selection + end;
 }
}
function insertAtCaret (textEl, text)
{
if (textEl.createTextRange && textEl.caretPos)
{
var caretPos = textEl.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
}
else
{
textEl.value  = begin + text + end;
}
}


GGtry
jeudi 30 avril 2009 à 12:45:09 | Re : ajout a la position du curseur

pigeon11

Merci pour votre réponse.

Si je crée un fichier html pour test, ça marche.

Mais, sous dotnet, si j'ajoute le code javascript, ça me donne l'erreur suivante :

createTextRange a la valeur null ou n'est pas un objet

Merci pour vos aides

lundi 4 mai 2009 à 18:40:43 | Re : ajout a la position du curseur

pigeon11

Bonsoir,

ça marche si je positionne le curseur mais j'ai un problème.

si je clique sur le bouton qui ajoute du texte sans que je ne positionne le curseur ce la m'affiche dans le texearea :

  undefined LE TEXTE undefined

dans page aspx j'ai une DropDownList, lorsque je clique sur un élément de la liste cela affiche des données dans le textearea

et quand je clique sur le bouton qui ajoute du texte sans que je ne positionne le curseur dans le texte area cela ecrase le contenu

affiché dans le textearea et le remplace par :

undefined LE TEXTE undefined

Merci pour vos aides

 

lundi 4 mai 2009 à 19:47:18 | Re : ajout a la position du curseur

ggtry

Bonsoir,

Oui, c'est normal. Le js donné ci-dessus est minimal et assez mauvais (et d'ailleurs la variable toto n'y sert à rien...)
Tu peux tester par exemple si begin ou end sont undefined ou non :

function insertAtCaret (textEl, text)
{
if (textEl.caretPos && textEl.createTextRange)
{
var caretPos = textEl.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
}
else if (begin != undefined)
{
textEl.value  = begin + text + end;
}
}

GGtry


Cette discussion est classée dans : text, texte, position, caretpos, textel


Répondre à ce message

Sujets en rapport avec ce message

parametre title=fichier texte [ par KolGas ] Vous connaissez le petit texte qui s'affiche sur le passage prolongé de la souris,celui qui est parametre dans : title="ici le petit text" >element t initialisation des textbox d'une form [ par dialvb ] Bonjour, je cherche à remplacer le texte de plusieurs textbox par un autre texte de façon "automatique". J'ai commencé à faire ca: [color=purple]Pr Text Area ligne par ligne [ par picinounours51 ] Bonjour, sur une de mes pages je dispose d'une zone de texte. L'utilisateur est censé faire un copier-coller d'une colonne d'une feuille Excel et mon pb avec un htmlinputtext [ par kirdrik2000 ] Bonjour,je voudrais faire une recherche grace a un champ texte + un bouton OK:j'utilise un htmlinputtext et un htmlbutton crée dynamiquement.j'ai régl Garder la meme taille du texte meme si on la change dans le navigateur [ par sizzla68 ] salut a tous,j'ai une question un peu bete mais qui peut s'averer pratique :)Comment faire pour garder la meme taille de texte meme si l'utilisateur l Image dans PDF [ par tikenjoe ] Bonjour à tous!J'essaie depuis plusieurs jours d'utiliser FPDF pour ASP, mais c'est la grosse galère!!! J'arrive à générer du texte dans un pdf. &n limitation d'un chanp de text [ par richch ] Je cherche à développer une fonction en ASP qui me permet de ‘filtrer’ un cham de texte venant d’un formulaire. Par exemple : C:\Inetpub\wwwroot\actu\ Prob INSERT... [ par Zekez ] Bonjour,Petit problème ici d'exécution d'une requête d'insertion... donc en fait bennn je pense que tout est ok mais rien ne marche... je ne comprend saisie semi automatique dans un text [ par hellraiser94 ] je voudrais savoir si quelqu'un connait le moyen  de faire une saisie semi automatique d'un champ texte.Chaque fois que l'utilisateur rentre une lettr insertion dans une Base de Données [ par richch ] Salut, Je cherche à insérer un champ de texte dans une BD mais l’opération ne marche pas lorsque le champ de texte contient un « ‘ », veuillez m’aider


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,919 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales