webForumDet fria alternativet

Editera infoga-URL-script

JavaScript

5 svar · 228 visningar · startad av jepsO

Medlem sedan mars 2001484 inlägg
Frågan#1

Följande kod fungerar utmärkt för att infoga en länk i en textbox:

function AddText(NewCode) {
		document.admin.longtext.value+=NewCode
	}
	function hyperlink() {
		txt2=prompt("Länktext.\nLämna tomt om du vill att själva URLen ska visas som länktext.",""); 
		if (txt2!=null) {
			txt=prompt("URL för länken.","http://");      
			if (txt!=null) {
				if (txt2=="") {
					AddTxt="<a href="+txt+">"+txt+"</a>";
					AddText(AddTxt);
				} 
				else {
					AddTxt="<a href="+txt+">"+txt2+"</a>";
					AddText(AddTxt);
				}         
			} 
		}
	}

Problemet är att texten alltid infogas sist i textboxen. Går det att editera scriptet så URLen infogas där man har markören innan man trycker på "Infoga URL"?

För att se funktionen "in action" kan ni bege er hit och trycka på följande bild.

Tack på förhand.

[Redigerat av jepsO den 21 mar 2001]

Medlem sedan juli 2000836 inlägg
#2

Det går definitivt inte att göra med javascript så att det funkar i NN, möjligtvis med java. Så frågan är om man skall gå vidare eftersom det kanske kan funka i IE.
Själv skulle jag fösöka hitta en annan lösning som funkar för både IE & NN (åtminstone).

/ J

Medlem sedan mars 2001484 inlägg
#3

Saken är den att scriptet används på ett intranät där IE är standard. Det är alltså inget hinder om lösningen inte skulle fungera i NN.

Medlem sedan juli 2000836 inlägg
#4

OK!

Jag skulle provat detta:

function sparaPos() {
nuPos = document.selection.createRange();
}

function AddText(NewCode) {
nuPos.text=NewCode;
}

function hyperlink() {
txt2=prompt("Länktext.\nLämna tomt om du vill att själva URLen ska visas som länktext.",""); 
if (txt2!=null) {
txt=prompt("URL för länken.","http://"); 
if (txt!=null) {
if (txt2=="") {
AddTxt="<a href="+txt+">"+txt+"</a>";
AddText(AddTxt);
} 
else {
AddTxt="<a href="+txt+">"+txt2+"</a>";
AddText(AddTxt);
} 
} 
}
}

Obs! din textarea måste trigga "sparaPos()"

<textarea name="longtext" rows=10 cols=45 onclick="sparaPos();">...

/ J

Medlem sedan mars 20015 287 inlägg
#5

Hallå, jag har ett liknande problem med en liknande funktion.
Jag har modifierat ett par script som jag har hittat bla här på wf:

function hilite(txtArea,man,over){

txtAreaName = txtArea.name;
txtRange = document.all[txtAreaName].createTextRange();
txtContainer = txtRange.parentElement().name;

objRange = document.selection.createRange();
hiliteTxt = objRange.text;
toFont_Txt = man + hiliteTxt + over;

if(hiliteTxt != ""){
objRange.text = toFont_Txt;
}
}

Detta fungerar ok, men jag skulle vilja, att om jag tex bara skickar med tex "man" till funktionen samtidigt som jag bara "ställer" markören utan att markera ett ord, få in "man" där...

Borde inte vara så svårt....
inte för att jag klarar av det...

------------------
/solbulle

Medlem sedan mars 20015 287 inlägg
#6

Jahaja, nu svarar jag på mitt eget inlägg...
Det löste sig, :)

Klantskallen (jag) hade använt samma variabelnamn till två olika prylar.
Det tog ett tag innan jag observerade det.. :(

------------------
/solbulle

261 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)