Gå til innhold

Markørposisjon, hodebry for en som ikke kan javascript


Anbefalte innlegg

Skrevet (endret)

Jeg forstår hva som står i et javascript, men bare til en viss grad. Å skrive disse om selv er for vanskelig for jeg har ikke nok erfaring.

 

Her er scriptet jeg bruker for å putte ting i et tekstfelt (textarea). Denne putter bare tekst til slutten:

 

Klikk for å se/fjerne innholdet nedenfor
//Have the propmt box turned on by default
var promptOn = true;

//Function to turn on or off the prompt box
function PromptMode(selectMode){

if (selectMode.options[selectMode.selectedIndex].value == 0){
	promptOn = false;
}
else{
	promptOn = true;
}
}


// Function to add the code for bold italic centre and underline, to the message
function AddMessageCode(code, promptText, InsertText) {

if (code != "") {
	if (promptOn == true){
		insertCode = prompt(promptText + "\n[" + code + "]xxx[/" + code + "]", InsertText);
			if ((insertCode != null) && (insertCode != "")){
				document.new_post.message.value += "[" + code + "]" + insertCode + "[/" + code + "]";
			}
	}
	else{
		document.new_post.message.value += "[" + code + "][/" + code + "]";
	}
}

document.new_post.message.focus();
}

// Function to add the font colours, sizes, type to the message
function FontCode(code, endCode) {

if (code != "") {
	if (promptOn == true){
		insertCode = prompt("Skriv inn ønsket tekst " + code + "\n[" + code + "]xxx[/" + endCode + "]", '');
			if ((insertCode != null) && (insertCode != "")){
				document.new_post.message.value += "[" + code + "]" + insertCode + "[/" + endCode + "]";
			}
	}
	else{
		document.new_post.message.value += "[" + code + "][/" + endCode + "]";
	}
}	
document.new_post.message.focus();
}



//Function to add the URL, indent, list, and Email code to the message
function AddCode(code) {

//For the URL code
if ((code != "") && (code == "URL")) {
	if (promptOn == true){
		insertText = prompt("Skriv inn tittel på intern peker", "");

			if ((insertText != null) && (insertText != "") && (code == "URL")){
				insertCode = prompt("Skriv inn adressen det skal pekes til", "http://");

					if ((insertCode != null) && (insertCode != "") && (insertCode != "http://")){					
						document.new_post.message.value += "[" + code + "=" + insertCode + "]" + insertText + "[/" + code + "]";
					}
			}
	}
	else {
		document.new_post.message.value += "[" + code + "= ][/" + code + "]";
	}
}

//For the URLX code
if ((code != "") && (code == "URLX")) {
	if (promptOn == true){
		insertText = prompt("Skriv inn tittel på ekstern peker", "");

			if ((insertText != null) && (insertText != "") && (code == "URLX")){
				insertCode = prompt("Skriv inn adressen det skal pekes til", "http://");

					if ((insertCode != null) && (insertCode != "") && (insertCode != "http://")){					
						document.new_post.message.value += "[URLX=" + insertCode + "]" + insertText + "[/URL]";
					}
			}
	}
	else {
		document.new_post.message.value += "[URLX= ][/URL]";
	}
}


//For the email code
if ((code != "") && (code == "EMAIL")) {
	if (promptOn == true){
		insertText = prompt("Skriv inn tittelen på e-postpeker", "");

			if ((insertText != null) && (insertText != "")){
				insertCode = prompt("Skriv inn e-postadressen det skal pekes til", "");

					if ((insertCode != null) && (insertCode != "")){					
					document.new_post.message.value += "[" + code + "=" + insertCode + "]" + insertText + "[/" + code + "]";
				}
			}
	}
	else {
		document.new_post.message.value += "[" + code + "= ][/" + code + "]";
	}
}

//For the image code
if ((code != "") && (code == "IMG")) {
	if (promptOn == true){	
		insertCode = prompt("Skriv inn adressen til bildet", "http://");

			if ((insertCode != null) && (insertCode != "")){					
			document.new_post.message.value += "[URL=" + insertCode + "][" + code + "]" + insertCode + "[/" + code + "][/URL]";
		}			
	}
	else {
		document.new_post.message.value += "[" + code + "][/" + code + "]";
	}
}

//For the list code
if ((code != "") && (code == "LIST")) {
	if (promptOn == true){
		listType = prompt("Velg listetype \nSkriv \'1\' for nummerert, eller blankt for uordnet", "");

		while ((listType != null) && (listType != "") && (listType != "1")) {
			listType = prompt("Feil, du må skrive \'1\' eller la feltet være blankt","");			   
		}

		if (listType != null) {			
			var listItem = "1";
			var insertCode = "";

			while ((listItem != "") && (listItem != null)) {
				listItem = prompt("la feltet være blankt for å avslutte listen",""); 
				if (listItem != "") {			 
					insertCode += "[LI]" + listItem + "[/LI]"; 
				}				   
			} 

			if (listType == "") {
				document.new_post.message.value += "[" + code + "]" + insertCode + "[/" + code + "]";
			} else {
				document.new_post.message.value += "[" + code + "=" + listType + "]" + insertCode + "[/" + code + "=" + listType + "]";
			} 

		}
	}
	else{
		document.new_post.message.value += "[" + code + "][LI] [/LI][LI] [/LI][LI] [/LI][/" + code + "]";
	}			
}


//For the indent
if ((code != "") && (code == "INDENT")) {

		document.new_post.message.value += "	  ";				
}

document.new_post.message.focus();
}

//Function to add the code to the message for the smileys
function AddSmileyIcon(iconCode) {
	var txtarea = document.new_post.message;
	iconCode = iconCode
	 {
	  txtarea.value  += iconCode;
	  txtarea.focus();
	}
}

 

Er det noen som enkelt får til å bake inn tekst blir sendt der markøren er posisjonert i stedet for etter eventuell eksisterende tekst i tekstfeltet?

 

På forhånd takk :)

Endret av atomtissetasen
Videoannonse
Annonse
Skrevet

Jeg har verket tålmodighet eller nok styrke i sjelen til å lese igjennom den velformaterte koden du har lagt til i posten din.

 

Jeg hadde en tilsvarende problemstilling for noen uker siden (sette inn tekst hvor markøren er). Jeg endte opp med å bruke dette scriptet:

 

http://debugger.ru/projects/browserextensi...cumentselection

 

Ja, jeg vet at siden er på russisk, men selve scriptet er godt dokumentert via jsdoc.

 

For å sette inn tekst der markøren er posisjonert, bruker du:

DocumentSelection.insertAtCursor(document.getElementById("tekstfelt"), "tekst");

 

Lykke til.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...