webForumDet fria alternativet

infoga smiley

JavaScript

9 svar · 859 visningar · startad av Mira

Medlem sedan maj 2001966 inlägg
Frågan#1

Har letat här på forumet och försökt förstå hur jag ska lösa detta, men behöver mer hjälp.

Jag har tagit smiley-koden från mitt forum och vill nu göra så att jag kan använda den i en gästbok.

I koden fanns javascripet:

function AddSmileyIcon(iconCode) {	
	window.opener.document.frmAddMessage.message.value += iconCode + " ";
}

och vid varje smiley står det:

<img src="smileys/smiley2.gif" border="0" alt="[;)]" onClick="AddSmileyIcon('smileys/smiley2.gif')" style="cursor: hand;">

Kan jag använda samma kod?
Och i såfall - vad ska jag ändra på för att den ska hitta min gästbok?

Medlem sedan dec. 20025 483 inlägg
#2

Finns smileyfigurerna i ett popupfönster och, i sådana fall, skall de (vid klick) inkluderas i en <textarea> i huvudfönstret?

Medlem sedan maj 2001966 inlägg
#3

svar: ja

Medlem sedan dec. 20025 483 inlägg
#4
function AddSmileyIcon(iconCode) {	
	window.opener.document.forms["[b]namn_på_formulär[/b]"].elements["[b]namn_på_textarea[/b]"].value += iconCode + " ";
}
Medlem sedan maj 2001966 inlägg
#5

Behövs något mer...

Det som hamnar i textarean är adressen "smileys/smiley2.gif".
Bilden syns inte i meddelandet.

Måste jag ha en Replace för att bilden ska synas...?
Hur skulle den i såfall se ut?

Medlem sedan dec. 20025 483 inlägg
#6

Japp

<img src="smileys/smiley2.gif" border="0" alt="[;)]" onClick="AddSmileyIcon([b]';)'[/b])" style="cursor: hand;">

Sedan får du göra en replace på alla &#59) med <img src="smileys/smiley2.gif">.

Medlem sedan maj 2001966 inlägg
#7

Ahh... äntligen fick jag till det.

Det är tydligen noga med i vilken ordning Replacen ligger om man har fler än 1.

En sak till.
Jag hittade på forumet en kod (som du skrivit) för att få smileyn att hamna där markören står.
Kan jag få in den i min kod på nått vis?
Har du lust att visa mej hur?

http://www.webforum.nu/showthread.php?s=&postid=972293#post972293

Medlem sedan dec. 20025 483 inlägg
#8

Huvudsidan (notera att du får byta ut det fetstilta mot det som passar dig):

<script type="text/javascript">

var cPos,
    fObj,
    ieC = Boolean(document.selection && document.selection.createRange);

function smilie(str) {
    if (ieC) {
	if (typeof cPos != "undefined")
	    cPos.text = str;
	else
	    fObj.value = str;
    }

    else if (typeof window.HTMLTextAreaElement != "undefined")
	fObj.value = fObj.value.substring(0, fObj.selectionStart) + str + fObj.value.substring(fObj.selectionEnd);

    else fObj.value += str;
}

function sC() {
    cPos = document.selection.createRange().duplicate();
}

window.onload = function() {
    fObj = document.forms["[b]namn_på_formulär[/b]"].elements["[b]namn_på_textarea[/b]"];

    if (ieC) {
	fObj.onclick  = function() { sC(); }
	fObj.onkeyup  = function() { sC(); }
	fObj.onselect = function() { sC(); }
    }
}

</script>

<form name="[b]namn_på_formulär[/b]">
	<textarea cols="20" rows="5" name="[b]namn_på_textarea[/b]"></textarea>
</form>

Istället för funktionen AddSmileyIcon() använder du smilie(), like so:

<img src="smileys/smiley2.gif" border="0" alt="[;)]" onClick="[b]window.opener.smilie(';)')[/b]" style="cursor: hand;">
Medlem sedan maj 2001966 inlägg
#9

Tack så jättemycket för hjälpen!

Medlem sedan dec. 20025 483 inlägg
#10

Härligt! Då är det bara acceptera som slutgiltigt svar kvar ;)

264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)