Autor Zpráva
ghulas
Profil
Dobrý den, kdysi jsem si udělal js na vkládání textu, teď mi ale nefunguje, nespíš prohlížečem.
<script type="text/javascript"> 
function insertatcursor(myField, myValue) { 
if (document.selection) { 
myField.focus(); 
sel = document.selection.createRange(); 
sel.text = myValue; 
} 
else if (myField.selectionStart == 0 || myField.selectionStart == '0') { 
var startPos = myField.selectionStart; 
var endPos = myField.selectionEnd; 
myField.value = myField.value.substring(0,startPos) + myValue + myField.value.substring(endPos, myField.value.length); 
} 
else { 
myField.value += myValue; 
} 
} 
</script> 
...
<a href="#document.nprispevek" onClick="insertatcursor(document.getElementById('text'),vlozeny text)">něco</a>
...
<textarea rows="10" cols="60" name="text"></textarea><br />

Nevíte, proč to na jiných prohlížečích než exploeru nejde, a jak to předělat? Děkuji.
Molda
Profil
jednodušší a stejná funkčnost
<script>
    function vloz(idecko, tex) 
      {
        texta = document.getElementById(idecko);
        s = texta.selectionStart; 
        k = texta.selectionEnd;
        texta.value = texta.value.substring(0,s) + tex + texta.value.substring(k, texta.value.length);
      } 
</script> 
<textarea id="text"></textarea><a onclick="vloz('text','nazdar')">vloz</a>
Chamurappi
Profil
Reaguji na Moldu:
To těžko. Kde máš ten range?


Reaguji na ghulase:
nespíš prohlížečem
Nespím.
Vkládej prosím vždy odkaz na živou ukázku problému, pomohla by více než strohé „nefunguje to“.

proč to na jiných prohlížečích než exploeru nejde
Protože nemáš nikde element s id="text".
Krom toho ten tvůj else if, co je určený pro ostatní prohlížeče, kontroluje, jestli je počáteční pozice výběru 0 — proč?
Molda
Profil
mě to tak funguje
na místo kurzoru vloží text
a označený text nahradí test

změna ,funguje jen v chromu
ghulas
Profil
tady je ukázka, jsou to ty obrázky dole: Odkaz
ghulas
Profil
Nevíte tedy někdo, jak? Potřebuju do toho zakomponovat i Operu...
keeehi
Profil
Toto používám na vkládání smajlíků a funguje mi to dobře v FF, Opeře, IE, Chrom.
function smajlik(val) {
	var o = document.getElementById("vzkaz");
	o.focus();
	if (document.selection) {
		sel = document.selection.createRange();
		sel.text = val;
		}
	else if (o.selectionStart || o.selectionStart == '0') {
		var startPos = o.selectionStart;
		var endPos = o.selectionEnd;
		o.value = o.value.substring(0,startPos) + val + o.value.substring(endPos, o.value.length);
		}
	else {
		o.value += val;
		}
}
ghulas
Profil
Pořád to nejde... nebude něco s tím vkládáním odkazem, nebo s vkládáním scriptu?
ghulas
Profil
mam to:
<?php
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT'); ?>
<script type="text/javascript">
function insertatcursor(val) {
    var o = document.getElementById("text");
    o.focus();
    if (document.selection) {
        sel = document.selection.createRange();
        sel.text = val;
        }
    else if (o.selectionStart || o.selectionStart == '0') {
        var startPos = o.selectionStart;
        var endPos = o.selectionEnd;
        o.value = o.value.substring(0,startPos) + val + o.value.substring(endPos, o.value.length);
        }
    else {
        o.value += val;
        }
}  
</script> 
<?php
...
?>
<a href="#document.nprispevek" onClick="insertatcursor('Tučně')"><img src=img/button_bold.gif border=0></a> 
<?
echo '<textarea rows="6" cols="60" name="text"></textarea>
?>
ghulas
Profil
pomohl by mi někdo prosím?

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: