Autor Zpráva
Pan X
Profil
zdravím, mám takový menší problém. Potřebuji udělat něco podobného jako je zde na diskusi v psaní příspěvků (ta editace textu příspěvku nebo postu). Koukal jsem na zdejší javascript. Je tam toto:

function getTextareaSelection()
{
	var textarea = document.forms["postMsg"].elements["poslText"];
	
	if (typeof textarea.selectionStart != 'undefined') {
		var selection = textarea.value.substring(textarea.selectionStart, textarea.selectionEnd);
	} else if (typeof document.selection != 'undefined') {
		var selection = document.selection.createRange().text;
		alert(selection);
	} else {
		//alert('Bug!');
	}
	return selection;
}


Všechno mi s tímto kouskem funguje OK, ale já bych to potřeboval udělat na <div> toto slouží jen na textarea.
Skoušel jsem si to nějak přizpůsobit sám, ale nepovedlo se.

Já mám <div id="obsah"> který funguje podobně jako textarea u Vás na diskusi. Mohl by mi někdo z šikovnějších JavaScriptařů poradit jak to poupravit, aby to šlo i na div?

Předem díky
Chamurappi
Profil
Reaguji na Pana X:
Vyzobnul sis ze zdejšího skriptu špatnou funkci, hned pod „getTextareaSelection“ je „getDocumentSelection“ a ta asi dělá přesně to, co chceš. Využívá se tu mimochodem při citování.
Pan X
Profil
Chamurappi

Ta ale vybírá celý obsah ne? Já potřebuji aby mi to vybralo jen tu část co označím a pak kliknu na TUČNĚ a ono mi to udlěá <b>neco co sem vybral</b>

To tato fce nedělá ne?
Suta
Profil
Pan X
Ta ale vybírá celý obsah ne? “ (getDocumentSelection)

Ne, tato funkce vybírá přesně pouze označený text ve stránce.

Před pár dny jsem řešil podobný problém. Taky jsem použil princip ze zdejšího fora.

Můžeš mrknout sem, udělal jsem si testovací stránku, po označení textu jak v divu (levý vrchní obdélník, tak v textaeře (levý spodní obdélník) se po označení textu text zkopíruje (upravíš dle potřeby...). Vím že jsem musel vyřešit problém, kdy tuším opera nebrala text z textarey při použití funkce getDocumentSelection, proto je v hlavním kódu:

window.document.onmouseup = function() {
oznacenyText = getDocumentSelection();
if(oznacenyText=="") { oznacenyText = getTextareaSelection(); }
if(oznacenyText!="") { document.getElementById("kopie").innerHTML = oznacenyText; }
oznacenyText="";
}


Mrkni na celý kód ve stránce, snad ti to pomůže.
Pan X
Profil
Suta

Díky moc, to je přesně to co jsem potřeboval. Ještě jednou moc díky

Chamurapi tobě samozřejmě také
Pan X
Profil
Suta
už nic :)

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: