[js] getselected jako html

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod ReZetFet 9. 6. 2010 12:23

Zdravím,
mám potíž s kopírováním html pomocí javascriptu.
Kód: Vybrat vše
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Select text v javascriptu</title>
</head>

<body>

<script language=javascript>
function getSelText()
{
    var txt = '';
     if (window.getSelection)
    {
        txt = window.getSelection(); 
             }
    else if (document.getSelection)
    {
        txt = document.getSelection();
            }
    else if (document.selection)
    {
        txt = document.selection.createRange().htmlText;
            }
    else return;
document.aform.selectedtext.value =  txt;
findById('trg').innerHTML += txt;
}       
document.onkeydown=function(e){
    if(e.which == 13) {
        findById('trg').innerHTML += "<strong>oki<\/strong>";
    }

function findById(nazev){
    return document.getElementById(nazev);
}

</script>

<p>Lorem Ipsum is simply <strong>dummy</strong> text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p>
<input type="button" value="Get selection" onmousedown="getSelText()">
<form name=aform >
<textarea name="selectedtext" rows="5" cols="20"></textarea>
</form>
<div id="trg"></div>
</body>
</html>


do toho divu (id trg) by se pak mělo vložit ono html ale kopíruje to ten text. Vygooglil jsem nějaká řešení s getrange ale ty nefungují nebo je neumím použít.
Esli jste to někdo řešil pak prosím o radu :-) Dííík
ReZetFet
Junior

Odeslat příspěvekod Václav M. 23. 6. 2010 23:38

Omlouvám se, pokud jsem mimo. Pokud chceš jenom zkopírovat obsah odstavce do toho divu, pak zkus něco na tento způsob:

Kód: Vybrat vše
var Zdroj = document.getElementById('Zdroj').value;
document.getElementById('Nahled').innerHTML = Zdroj;


Ovšem tyhle dva řádky jsou vyseknuté z jednoho z JavaScriptových souborů pro AJAX. Takže si je uprav podle potřeby. Hlavně ten první.
Václav M.
Junior
Uživatelský avatar

Odeslat příspěvekod Squad_leader7 23. 6. 2010 23:46

hmmmm.
Pokud to myslíš tak, že zkopíruješ část html dokumentu někam (tedy nějaký prvek včetně textu - obsahu) pak se používá trochu jiný postup.

Co mě napadá hned je použít css invisible a pak nakopírovat text do toho neviditelného prvku a zapnout mu viditelnost.

Výsledek by měl být takový, jak jsem to pochopil.
Squad_leader7
Kolemjdoucí
Uživatelský avatar

Odeslat příspěvekod Václav M. 24. 6. 2010 08:04

Lepší je display než visibility.
Václav M.
Junior
Uživatelský avatar

Odeslat příspěvekod ReZetFet 24. 6. 2010 16:11

Pro představu bych dodal, že jak je tam
Kód: Vybrat vše
<strong>dummy</strong> text

tak bych chtěl abych to v tom divu
Kód: Vybrat vše
<div id="trg"></div>

Zobrazil ve formátu výsledným efektem
Kód: Vybrat vše
<div id="trg"><strong>dummy</strong> text</div>
ReZetFet
Junior

Odeslat příspěvekod Václav M. 24. 6. 2010 16:45

OK. Při cestě, kterou jsem navrhnul já potřebuješ ten (příkladový) text
Kód: Vybrat vše
<strong>dummy</strong> text

vložit do nějakého např. odstavce nebo divu, kterému zadáš určité ID nebo jinou vlastnost, kterou můžeš použít jako stoprocentní identifikaci (aby ti to nevzalo i texty, které nechceš).

Takže abych to vzal konkrétně...
Kód: Vybrat vše
<p id="FňBž"><strong>dummy</strong></p>

protože ten text musíš mít v něčem obalený. Takže je jedno jestli to bude v buňce tabulky, divu či odstavci nebo také v textarei (textarea).

Kód: Vybrat vše
var Text = document.getElementById('FňBž').value;
document.getElementById('trg').innerHTML = Text;

nebo zkráceno do jednoho řádku
Kód: Vybrat vše
document.getElementById('trg').innerHTML = document.getElementById('FňBž').value;

ale s tímto si nejsem zcela jist, jestli by to fungovalo.

Toť vše. Problém vyřešen.
Václav M.
Junior
Uživatelský avatar

Odeslat příspěvekod ReZetFet 25. 6. 2010 09:09

Václav M.: Obávám se, že si nerozumíme. Příklad načte obsah podle ID prvku.
Já nechci kopírovat celý text ale jen jeho jeho (myší) vybranou část. Jako kdyby jsem ve wordu chtěl v té větě text změnit na kurzívu se zachovaným tučným písmem slova dummy.
ReZetFet
Junior

Odeslat příspěvekod Václav M. 25. 6. 2010 09:58

AHA. Tak si stáhni phpBB a vypůjč si JavaScript, který výběr obstarává. Ta druhá část, tedy vložení někam, ale zůstane stejná, jak jsem jí navrhnul.
Václav M.
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků