Autor Zpráva
Jcas
Profil *
Mohu použít script této diskuse pro svoji textareu (jaké jsou podmínky)?
Najdu někde návod jak na to?
Sledoval jsem odkaz v samotném scriptu, ale ten mě nikam nedovedl.
Stačilo by mi B, I, odkaz. Sece umím vložit značky, ale už nedokážu, aby obepnuly vybranou část textu.
děkuji
Chamurappi
Profil
Reaguji na Jcase:
Doporučím ti vyjít spíš ze staršího skriptu main_posts-cs-new.js.

Sledoval jsem odkaz v samotném scriptu, ale ten mě nikam nedovedl.
Původně jsem nějaké podmínky sepsat chtěl, individuální pro různé části skriptu, ale uvědomil jsem si, že všechny části jsou buď příliš specifické pro tuto diskusi, nebo zbytečně chytré pro potřeby ostatních, nebo příliš propracované na to, abych jen tak prohlásil „vemte si, co hrdlo ráčí“…
__construct
Profil
Chamurappi:
A pokiaľ by som chcel na webe použiť iba 2 funkcie (najdi() a roluj())?
Keeehi
Profil
Chamurappi:
Takže výsledkem je co? Scripty ze zdejší diskuse se nesmějí používat?
Chamurappi
Profil
Reaguji na __constructa:
Zrovna to můžeš. Kdokoliv může. Čím víc webů bude podporovat hledací kotvu, tím lépe :-)


Reaguji na Keeehiho:
Žádný jednoduchý paušální výsledek vztahující se na všechno, co se ukrývá v djpw.js, není. Ne každá licence musí být jednoduchá.
Jcas
Profil *
Takže můžu si tem Starší script dát do stránek?
Pomůžete mi to prosím rozchodit. Rvu do něj alerty, abych zjistil, roč to nefunguje.
Jestli tomu dobře rozumím:???
Fc getDocumentSelection() - by měla vrátit vybraný text, nebo aspoň pozici kurzoru.
No funkce proběhne, ale nevrátí vybraný text. = alert je úplně prázdný
function insertQuote(el)
{	
	var text = getDocumentSelection();		//voláme funkci
	alert(text);
	if (text == '') {
		text = el.parentNode.nextSibling.nextSibling.innerText || el.parentNode.nextSibling.nextSibling.textContent;
		text = text.split("\n");		//split() rozdělí řetězec jako explode
		alert('ahoj');
		for (var i = 0; i < text.length; i++) {
			text[i] = text[i].trim();	// kvůli IE
			if (text[i] == '') { alert('nazdar');
				continue;
			}
			insertTag('i', true, text[i], '„', "“\r\n");			
		}
	} else { alert('else');
		insertTag('i', true, text, '„', "“\r\n");
	}
}

alert('ahoj')('nazdar')('else') už nikdy nevyskočí. isertTag se nikdy nezavolá.
Jcas
Profil *
Na předchozí příspěvek zapomeňte. Začal jsem se v tom hrabat a studovat. Dospěl jsem až sem:
<script type="text/javascript" >
function vyber(tag) {
	var textarea = document.forms["muj_formular"].elements["info"];
	var obsah = textarea.value; 				//obsah textarey
	
	//substring(zacatek, konec) vrati část řetězce. Konec je nepovinný. Pokud jej nezadáme, vrátí vše od začátku do konce řetězce 
	//selectionStart - určuje začátek vybrané části
	//je-li selectionStart a selectionEnd na stejném místě, určuje pozici kurzoru
	var zacatek = textarea.value.substring(0, textarea.selectionStart);		//vrátí text před výběrem	
	var konec = textarea.value.substring(textarea.selectionEnd);				//vrátí text za výběrem
	
	
	var text = getTextareaSelection();		//je-li označen text, vrátí jej. Pokud nebyl označen, text==""
	var startTag = '[' + tag + ']';
	var endTag = '[/' + tag + ']';
		
	if(text!='') {									//jestlize byl oznacen text
	
		}
	}

//-------------FUNKCE VRACI OZNACENY TEXT NA STR. !!!! NE V TEXTAREA-----------------------
function getSel() {
  if(document.getSelection) { 	
	return document.getSelection();
  } else if (document.selection&&document.selection.createRange) { 
	return document.selection.createRange().text;

  } else { alert('else');
    return false;
  }
}

//-----------FC VRACI OZNAČENÝ TEXT V TEXTAREA-------------------
function getTextareaSelection()
{
	var textarea = document.forms["muj_formular"].elements["info"];
	
	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;
	} else {
		//alert('Bug!');
	}   
	return selection;
}
</script>

<form name="muj_formular">
<img src="zocsch/vystavy/admin/button_bold.gif" width="23" height="22" alt=""  onclick="vyber('B'); return false"/>

<textarea name="info"></textarea>
</form>

<p>pouze text</p>


Vzhledem k tomu, že jsem docela dobře nepochopil předávání textu před výběrem a za výběrem, tak jsem si udělal své prom. zacatek, konec.
Ovšem poprosím pomoc s createRange().
Jestli to dobře chápu, tak to je pouze pro IE a to nemám šanci testovat. Takže nejsem schopen přijít na to, jak odchytit text před Range a za Range.
Chamurappi
Profil
Reaguji na Jcase:
Ovšem poprosím pomoc s createRange().
S čím přesně? Kompletní skript už jsi tu dostal — main_posts-cs-new.js funguje. Jestli sis z něj vzal méně, než bys měl, vem si z něj více.

tak to je pouze pro IE a to nemám šanci testovat
Tak si tu šanci zařiď, používá ho každý druhý…
Jcas
Profil *
Já si nevzal méně. já si vzal vše a nefunguje mi to. viz. příspěvek 6.
Z <img volám funkci insertQuote('b')


Tak si tu šanci zařiď, používá ho každý druhý…
Na druhej disk nemám. Kupovat si windows nechcu (nekradu), Takže "tak si to zařiď" není jen tak.
HajekJirka
Profil
Jcas:
Zobraz si zdrojový kod této stránky.
Vyhledej formulář s textareou, který je skoro na konci a ten zkopíruj (vše od <form> po </form>) a ulož k sobě na web.
Poté tam přidej zmiňovaný JS a vyzkoušej to.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0